MetalToggleButtonUI (Java Platform SE 8 )
Keywords: javax.swing.plaf.metal.MetalToggleButtonUI class
Date: 2026-04-22

javax.swing.plaf.metal

## Class MetalToggleButtonUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.ButtonUI
    - - javax.swing.plaf.basic.BasicButtonUI
      - - javax.swing.plaf.basic.BasicToggleButtonUI
        - - javax.swing.plaf.metal.MetalToggleButtonUI

-     public class MetalToggleButtonUI
      extends BasicToggleButtonUI

  MetalToggleButton implementation

  Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans™ has been added to the `java.beans` package. Please see `XMLEncoder`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Color` | `disabledTextColor`
    `protected Color` | `focusColor`
    `protected Color` | `selectColor`

    - ### Fields inherited from class javax.swing.plaf.basic.BasicButtonUI

      `defaultTextIconGap, defaultTextShiftOffset`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MetalToggleButtonUI()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static ComponentUI` | `createUI(JComponent b)`
    `protected Color` | `getDisabledTextColor()`
    `protected Color` | `getFocusColor()`
    `protected Color` | `getSelectColor()`
    `void` | `installDefaults(AbstractButton b)`
    `protected void` | `paintButtonPressed(Graphics g, AbstractButton b)`
    `protected void` | `paintFocus(Graphics g, AbstractButton b, Rectangle viewRect, Rectangle textRect, Rectangle iconRect)`
    `protected void` | `paintIcon(Graphics g, AbstractButton b, Rectangle iconRect)` Paints the appropriate icon of the button `b` in the space `iconRect`.
    `protected void` | `paintText(Graphics g, JComponent c, Rectangle textRect, String text)` As of Java 2 platform v 1.4 this method should not be used or overriden.
    `protected void` | `uninstallDefaults(AbstractButton b)`
    `void` | `update(Graphics g, JComponent c)` If necessary paints the background of the component, then invokes `paint`.

    - ### Methods inherited from class javax.swing.plaf.basic.BasicToggleButtonUI

      `getPropertyPrefix, getTextShiftOffset, paint`

    - ### Methods inherited from class javax.swing.plaf.basic.BasicButtonUI

      `clearTextShiftOffset, createButtonListener, getBaseline, getBaselineResizeBehavior, getDefaultTextIconGap, getMaximumSize, getMinimumSize, getPreferredSize, installKeyboardActions, installListeners, installUI, paintIcon, paintText, setTextShiftOffset, uninstallKeyboardActions, uninstallListeners, uninstallUI`

    - ### Methods inherited from class javax.swing.plaf.ComponentUI

      `contains, getAccessibleChild, getAccessibleChildrenCount`

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

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

- - ### Field Detail

    - #### focusColor

          protected Color focusColor

    - #### selectColor

          protected Color selectColor

    - #### disabledTextColor

          protected Color disabledTextColor

  - ### Constructor Detail

    - #### MetalToggleButtonUI

          public MetalToggleButtonUI()

  - ### Method Detail

    - #### createUI

          public static ComponentUI createUI(JComponent b)

    - #### installDefaults

          public void installDefaults(AbstractButton b)

      Overrides:
        `installDefaults` in class `BasicButtonUI`

    - #### uninstallDefaults

          protected void uninstallDefaults(AbstractButton b)

      Overrides:
        `uninstallDefaults` in class `BasicButtonUI`

    - #### getSelectColor

          protected Color getSelectColor()

    - #### getDisabledTextColor

          protected Color getDisabledTextColor()

    - #### getFocusColor

          protected Color getFocusColor()

    - #### update

          public void update(Graphics g,
                             JComponent c)

      If necessary paints the background of the component, then invokes `paint`.
      Overrides:
        `update` in class `ComponentUI`
      Parameters:
        `g` - Graphics to paint to
        `c` - JComponent painting on
      Throws:
        `NullPointerException` - if `g` or `c` is null
      Since:
        1.5
      See Also:
        `ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)`, `ComponentUI.paint(java.awt.Graphics, javax.swing.JComponent)`

    - #### paintButtonPressed

          protected void paintButtonPressed(Graphics g,
                                            AbstractButton b)

      Overrides:
        `paintButtonPressed` in class `BasicButtonUI`

    - #### paintText

          protected void paintText(Graphics g,
                                   JComponent c,
                                   Rectangle textRect,
                                   String text)

      Description copied from class: `BasicButtonUI`
      As of Java 2 platform v 1.4 this method should not be used or overriden. Use the paintText method which takes the AbstractButton argument.
      Overrides:
        `paintText` in class `BasicButtonUI`

    - #### paintFocus

          protected void paintFocus(Graphics g,
                                    AbstractButton b,
                                    Rectangle viewRect,
                                    Rectangle textRect,
                                    Rectangle iconRect)

      Overrides:
        `paintFocus` in class `BasicButtonUI`

    - #### paintIcon

          protected void paintIcon(Graphics g,
                                   AbstractButton b,
                                   Rectangle iconRect)

      Paints the appropriate icon of the button `b` in the space `iconRect`.
      Overrides:
        `paintIcon` in class `BasicToggleButtonUI`
      Parameters:
        `g` - Graphics to paint to
        `b` - Button to render for
        `iconRect` - space to render in
      Throws:
        `NullPointerException` - if any of the arguments are null.
      Since:
        1.5

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.