MultipleMaster (Java Platform SE 8 )
Keywords: java.awt.font.MultipleMaster interface
Date: 2026-04-17

java.awt.font

## Interface MultipleMaster

-     public interface MultipleMaster

  The `MultipleMaster` interface represents Type 1 Multiple Master fonts. A particular `Font` object can implement this interface.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Font` | `deriveMMFont(float[] axes)` Creates a new instance of a multiple master font based on the design axis values contained in the specified array.
    `Font` | `deriveMMFont(float[] glyphWidths, float avgStemWidth, float typicalCapHeight, float typicalXHeight, float italicAngle)` Creates a new instance of a multiple master font based on detailed metric information.
    `float[]` | `getDesignAxisDefaults()` Returns an array of default design values for each axis.
    `String[]` | `getDesignAxisNames()` Returns the name for each design axis.
    `float[]` | `getDesignAxisRanges()` Returns an array of design limits interleaved in the form [from→to] for each axis.
    `int` | `getNumDesignAxes()` Returns the number of multiple master design controls.

- - ### Method Detail

    - #### getNumDesignAxes

          int getNumDesignAxes()

      Returns the number of multiple master design controls. Design axes include things like width, weight and optical scaling.
      Returns:
        the number of multiple master design controls

    - #### getDesignAxisRanges

          float[] getDesignAxisRanges()

      Returns an array of design limits interleaved in the form [from→to] for each axis. For example, design limits for weight could be from 0.1 to 1.0. The values are returned in the same order returned by `getDesignAxisNames`.
      Returns:
        an array of design limits for each axis.

    - #### getDesignAxisDefaults

          float[] getDesignAxisDefaults()

      Returns an array of default design values for each axis. For example, the default value for weight could be 1.6. The values are returned in the same order returned by `getDesignAxisNames`.
      Returns:
        an array of default design values for each axis.

    - #### getDesignAxisNames

          String[] getDesignAxisNames()

      Returns the name for each design axis. This also determines the order in which the values for each axis are returned.
      Returns:
        an array containing the names of each design axis.

    - #### deriveMMFont

          Font deriveMMFont(float[] axes)

      Creates a new instance of a multiple master font based on the design axis values contained in the specified array. The size of the array must correspond to the value returned from `getNumDesignAxes` and the values of the array elements must fall within limits specified by `getDesignAxesLimits`. In case of an error, `null` is returned.
      Parameters:
        `axes` - an array containing axis values
      Returns:
        a `Font` object that is an instance of `MultipleMaster` and is based on the design axis values provided by `axes`.

    - #### deriveMMFont

          Font deriveMMFont(float[] glyphWidths,
                            float avgStemWidth,
                            float typicalCapHeight,
                            float typicalXHeight,
                            float italicAngle)

      Creates a new instance of a multiple master font based on detailed metric information. In case of an error, `null` is returned.
      Parameters:
        `glyphWidths` - an array of floats representing the desired width of each glyph in font space
        `avgStemWidth` - the average stem width for the overall font in font space
        `typicalCapHeight` - the height of a typical upper case char
        `typicalXHeight` - the height of a typical lower case char
        `italicAngle` - the angle at which the italics lean, in degrees counterclockwise from vertical
      Returns:
        a `Font` object that is an instance of `MultipleMaster` and is based on the specified metric information.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.