SynthGraphicsUtils (Java Platform SE 8 )
Keywords: javax.swing.plaf.synth.SynthGraphicsUtils class
Date: 2026-07-22

javax.swing.plaf.synth

## Class SynthGraphicsUtils

- java.lang.Object
- - javax.swing.plaf.synth.SynthGraphicsUtils

-     public class SynthGraphicsUtils
      extends Object

  Wrapper for primitive graphics calls.
  Since:
    1.5

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SynthGraphicsUtils()` Creates a `SynthGraphicsUtils`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `computeStringWidth(SynthContext ss, Font font, FontMetrics metrics, String text)` Returns the size of the passed in string.
    `void` | `drawLine(SynthContext context, Object paintKey, Graphics g, int x1, int y1, int x2, int y2)` Draws a line between the two end points.
    `void` | `drawLine(SynthContext context, Object paintKey, Graphics g, int x1, int y1, int x2, int y2, Object styleKey)` Draws a line between the two end points.
    `int` | `getMaximumCharHeight(SynthContext context)` Returns the maximum height of the the Font from the passed in SynthContext.
    `Dimension` | `getMaximumSize(SynthContext ss, Font font, String text, Icon icon, int hAlign, int vAlign, int hTextPosition, int vTextPosition, int iconTextGap, int mnemonicIndex)` Returns the maximum size needed to properly render an icon and text.
    `Dimension` | `getMinimumSize(SynthContext ss, Font font, String text, Icon icon, int hAlign, int vAlign, int hTextPosition, int vTextPosition, int iconTextGap, int mnemonicIndex)` Returns the minimum size needed to properly render an icon and text.
    `Dimension` | `getPreferredSize(SynthContext ss, Font font, String text, Icon icon, int hAlign, int vAlign, int hTextPosition, int vTextPosition, int iconTextGap, int mnemonicIndex)` Returns the preferred size needed to properly render an icon and text.
    `String` | `layoutText(SynthContext ss, FontMetrics fm, String text, Icon icon, int hAlign, int vAlign, int hTextPosition, int vTextPosition, Rectangle viewR, Rectangle iconR, Rectangle textR, int iconTextGap)` Lays out text and an icon returning, by reference, the location to place the icon and text.
    `void` | `paintText(SynthContext ss, Graphics g, String text, Icon icon, int hAlign, int vAlign, int hTextPosition, int vTextPosition, int iconTextGap, int mnemonicIndex, int textOffset)` Paints an icon and text.
    `void` | `paintText(SynthContext ss, Graphics g, String text, int x, int y, int mnemonicIndex)` Paints text at the specified location.
    `void` | `paintText(SynthContext ss, Graphics g, String text, Rectangle bounds, int mnemonicIndex)` Paints text at the specified location.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SynthGraphicsUtils

          public SynthGraphicsUtils()

      Creates a `SynthGraphicsUtils`.

  - ### Method Detail

    - #### drawLine

          public void drawLine(SynthContext context,
                               Object paintKey,
                               Graphics g,
                               int x1,
                               int y1,
                               int x2,
                               int y2)

      Draws a line between the two end points.
      Parameters:
        `context` - Identifies hosting region.
        `paintKey` - Identifies the portion of the component being asked to paint, may be null.
        `g` - Graphics object to paint to
        `x1` - x origin
        `y1` - y origin
        `x2` - x destination
        `y2` - y destination

    - #### drawLine

          public void drawLine(SynthContext context,
                               Object paintKey,
                               Graphics g,
                               int x1,
                               int y1,
                               int x2,
                               int y2,
                               Object styleKey)

      Draws a line between the two end points.

      This implementation supports only one line style key, `"dashed"`. The `"dashed"` line style is applied only to vertical and horizontal lines.

      Specifying `null` or any key different from `"dashed"` will draw solid lines.

      Parameters:
        `context` - identifies hosting region
        `paintKey` - identifies the portion of the component being asked to paint, may be null
        `g` - Graphics object to paint to
        `x1` - x origin
        `y1` - y origin
        `x2` - x destination
        `y2` - y destination
        `styleKey` - identifies the requested style of the line (e.g. "dashed")
      Since:
        1.6

    - #### layoutText

          public String layoutText(SynthContext ss,
                                   FontMetrics fm,
                                   String text,
                                   Icon icon,
                                   int hAlign,
                                   int vAlign,
                                   int hTextPosition,
                                   int vTextPosition,
                                   Rectangle viewR,
                                   Rectangle iconR,
                                   Rectangle textR,
                                   int iconTextGap)

      Lays out text and an icon returning, by reference, the location to place the icon and text.
      Parameters:
        `ss` - SynthContext
        `fm` - FontMetrics for the Font to use, this may be ignored
        `text` - Text to layout
        `icon` - Icon to layout
        `hAlign` - horizontal alignment
        `vAlign` - vertical alignment
        `hTextPosition` - horizontal text position
        `vTextPosition` - vertical text position
        `viewR` - Rectangle to layout text and icon in.
        `iconR` - Rectangle to place icon bounds in
        `textR` - Rectangle to place text in
        `iconTextGap` - gap between icon and text

    - #### computeStringWidth

          public int computeStringWidth(SynthContext ss,
                                        Font font,
                                        FontMetrics metrics,
                                        String text)

      Returns the size of the passed in string.
      Parameters:
        `ss` - SynthContext
        `font` - Font to use
        `metrics` - FontMetrics, may be ignored
        `text` - Text to get size of.

    - #### getMinimumSize

          public Dimension getMinimumSize(SynthContext ss,
                                          Font font,
                                          String text,
                                          Icon icon,
                                          int hAlign,
                                          int vAlign,
                                          int hTextPosition,
                                          int vTextPosition,
                                          int iconTextGap,
                                          int mnemonicIndex)

      Returns the minimum size needed to properly render an icon and text.
      Parameters:
        `ss` - SynthContext
        `font` - Font to use
        `text` - Text to layout
        `icon` - Icon to layout
        `hAlign` - horizontal alignment
        `vAlign` - vertical alignment
        `hTextPosition` - horizontal text position
        `vTextPosition` - vertical text position
        `iconTextGap` - gap between icon and text
        `mnemonicIndex` - Index into text to render the mnemonic at, -1 indicates no mnemonic.

    - #### getMaximumSize

          public Dimension getMaximumSize(SynthContext ss,
                                          Font font,
                                          String text,
                                          Icon icon,
                                          int hAlign,
                                          int vAlign,
                                          int hTextPosition,
                                          int vTextPosition,
                                          int iconTextGap,
                                          int mnemonicIndex)

      Returns the maximum size needed to properly render an icon and text.
      Parameters:
        `ss` - SynthContext
        `font` - Font to use
        `text` - Text to layout
        `icon` - Icon to layout
        `hAlign` - horizontal alignment
        `vAlign` - vertical alignment
        `hTextPosition` - horizontal text position
        `vTextPosition` - vertical text position
        `iconTextGap` - gap between icon and text
        `mnemonicIndex` - Index into text to render the mnemonic at, -1 indicates no mnemonic.

    - #### getMaximumCharHeight

          public int getMaximumCharHeight(SynthContext context)

      Returns the maximum height of the the Font from the passed in SynthContext.
      Parameters:
        `context` - SynthContext used to determine font.
      Returns:
        maximum height of the characters for the font from the passed in context.

    - #### getPreferredSize

          public Dimension getPreferredSize(SynthContext ss,
                                            Font font,
                                            String text,
                                            Icon icon,
                                            int hAlign,
                                            int vAlign,
                                            int hTextPosition,
                                            int vTextPosition,
                                            int iconTextGap,
                                            int mnemonicIndex)

      Returns the preferred size needed to properly render an icon and text.
      Parameters:
        `ss` - SynthContext
        `font` - Font to use
        `text` - Text to layout
        `icon` - Icon to layout
        `hAlign` - horizontal alignment
        `vAlign` - vertical alignment
        `hTextPosition` - horizontal text position
        `vTextPosition` - vertical text position
        `iconTextGap` - gap between icon and text
        `mnemonicIndex` - Index into text to render the mnemonic at, -1 indicates no mnemonic.

    - #### paintText

          public void paintText(SynthContext ss,
                                Graphics g,
                                String text,
                                Rectangle bounds,
                                int mnemonicIndex)

      Paints text at the specified location. This will not attempt to render the text as html nor will it offset by the insets of the component.
      Parameters:
        `ss` - SynthContext
        `g` - Graphics used to render string in.
        `text` - Text to render
        `bounds` - Bounds of the text to be drawn.
        `mnemonicIndex` - Index to draw string at.

    - #### paintText

          public void paintText(SynthContext ss,
                                Graphics g,
                                String text,
                                int x,
                                int y,
                                int mnemonicIndex)

      Paints text at the specified location. This will not attempt to render the text as html nor will it offset by the insets of the component.
      Parameters:
        `ss` - SynthContext
        `g` - Graphics used to render string in.
        `text` - Text to render
        `x` - X location to draw text at.
        `y` - Upper left corner to draw text at.
        `mnemonicIndex` - Index to draw string at.

    - #### paintText

          public void paintText(SynthContext ss,
                                Graphics g,
                                String text,
                                Icon icon,
                                int hAlign,
                                int vAlign,
                                int hTextPosition,
                                int vTextPosition,
                                int iconTextGap,
                                int mnemonicIndex,
                                int textOffset)

      Paints an icon and text. This will render the text as html, if necessary, and offset the location by the insets of the component.
      Parameters:
        `ss` - SynthContext
        `g` - Graphics to render string and icon into
        `text` - Text to layout
        `icon` - Icon to layout
        `hAlign` - horizontal alignment
        `vAlign` - vertical alignment
        `hTextPosition` - horizontal text position
        `vTextPosition` - vertical text position
        `iconTextGap` - gap between icon and text
        `mnemonicIndex` - Index into text to render the mnemonic at, -1 indicates no mnemonic.
        `textOffset` - Amount to offset the text when painting

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.