PlasticLookAndFeel (JGoodies Looks 2.6 API)
Date: 2014-02-27

com.jgoodies.looks.plastic

## Class PlasticLookAndFeel

- java.lang.Object
- - javax.swing.LookAndFeel
  - - javax.swing.plaf.basic.BasicLookAndFeel
    - - javax.swing.plaf.metal.MetalLookAndFeel
      - - com.jgoodies.looks.plastic.PlasticLookAndFeel

- All Implemented Interfaces:
    Serializable
  Direct Known Subclasses:
    Plastic3DLookAndFeel

      public class PlasticLookAndFeel
      extends MetalLookAndFeel

  The base class for the JGoodies Plastic look&feel family. Initializes class and component defaults for the Plastic L&f and provides keys and optional features for the Plastic family.
  Version:
    $Revision: 1.46 $
  Author:
    Karsten Lentzsch
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `BORDER_STYLE_KEY` Client property key to set a border style - shadows the header style.
    `static String` | `DEFAULT_THEME_KEY` A System property key to set the default theme.
    `static String` | `HIGH_CONTRAST_FOCUS_ENABLED_KEY` A System property key that indicates that the high contrast focus colors shall be choosen - if applicable.
    `static String` | `IS_3D_KEY` Client property key to disable the pseudo 3D effect.
    `static String` | `TAB_STYLE_DEFAULT_VALUE` A System property value that indicates that Plastic shall render tabs in the Plastic 1.0 style.
    `protected static String` | `TAB_STYLE_KEY` A System property key for the rendering style of the Plastic TabbedPane.
    `static String` | `TAB_STYLE_METAL_VALUE` A System property value that indicates that Plastic shall render tabs in the Metal L&F style.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PlasticLookAndFeel()` Constructs the PlasticLookAndFeel, creates the default theme and sets it as current Plastic theme.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static PlasticTheme` | `createMyDefaultTheme()` Creates and returns the default color theme.
    `protected static PlasticTheme` | `createTheme(String themeName)` Creates and returns a color theme from the specified theme name.
    `static ColorUIResource` | `getControl()`
    `static ColorUIResource` | `getControlDarkShadow()`
    `static ColorUIResource` | `getControlHighlight()`
    `String` | `getDescription()`
    `Icon` | `getDisabledIcon(JComponent component, Icon icon)` Returns an icon with a disabled appearance.
    `static ColorUIResource` | `getFocusColor()`
    `static FontPolicy` | `getFontPolicy()` Looks up and retrieves the FontPolicy used by the JGoodies Plastic Look&Feel family.
    `static boolean` | `getHighContrastFocusColorsEnabled()`
    `String` | `getID()`
    `static List` | `getInstalledThemes()` Lazily initializes and returns the `List` of installed color themes.
    `static BorderUIResource` | `getInternalFrameBorder()`
    `static ColorUIResource` | `getMenuItemBackground()`
    `static ColorUIResource` | `getMenuItemSelectedBackground()`
    `static ColorUIResource` | `getMenuItemSelectedForeground()`
    `static MicroLayoutPolicy` | `getMicroLayoutPolicy()` Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Plastic Look&Fs.
    `String` | `getName()`
    `static BorderUIResource` | `getPaletteBorder()`
    `static PlasticTheme` | `getPlasticTheme()` Lazily initializes and returns the PlasticTheme.
    `static ColorUIResource` | `getPrimaryControl()`
    `static ColorUIResource` | `getPrimaryControlDarkShadow()`
    `static ColorUIResource` | `getPrimaryControlHighlight()`
    `static ColorUIResource` | `getPrimaryControlInfo()`
    `static ColorUIResource` | `getPrimaryControlShadow()`
    `static ColorUIResource` | `getSimpleInternalFrameBackground()`
    `static ColorUIResource` | `getSimpleInternalFrameForeground()`
    `static String` | `getTabStyle()`
    `static ColorUIResource` | `getTitleTextColor()`
    `static FontUIResource` | `getTitleTextFont()`
    `static ColorUIResource` | `getWindowTitleBackground()`
    `static ColorUIResource` | `getWindowTitleForeground()`
    `static ColorUIResource` | `getWindowTitleInactiveBackground()`
    `static ColorUIResource` | `getWindowTitleInactiveForeground()`
    `protected void` | `initClassDefaults(UIDefaults table)` Initializes the class defaults, that is, overrides some UI delegates with JGoodies Plastic implementations.
    `protected void` | `initComponentDefaults(UIDefaults table)`
    `void` | `initialize()` Invoked during `UIManager#setLookAndFeel`.
    `protected void` | `initSystemColorDefaults(UIDefaults table)` Unlike my superclass I register a unified shadow color.
    `protected static void` | `installDefaultThemes()` Install the default color themes.
    `static void` | `installTheme(PlasticTheme theme)` Installs a color theme.
    `protected boolean` | `is3DEnabled()`
    `static boolean` | `isSelectTextOnKeyboardFocusGained()`
    `static void` | `set3DEnabled(boolean b)`
    `static void` | `setFontPolicy(FontPolicy fontPolicy)` Sets the FontPolicy to be used with the JGoodies Plastic L&F family.
    `static void` | `setHighContrastFocusColorsEnabled(boolean b)`
    `static void` | `setMicroLayoutPolicy(MicroLayout microLayoutPolicy)` Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs.
    `static void` | `setPlasticTheme(PlasticTheme theme)` Sets the theme for colors and fonts used by the Plastic L&F.
    `static void` | `setSelectTextOnKeyboardFocusGained(boolean b)` Sets whether text field text shall be selected when it gains focus via the keyboard.
    `static void` | `setTabStyle(String tabStyle)`
    `void` | `uninitialize()` Invoked during `UIManager#setLookAndFeel`.

    - ### Methods inherited from class javax.swing.plaf.metal.MetalLookAndFeel

      `createDefaultTheme, getAcceleratorForeground, getAcceleratorSelectedForeground, getBlack, getControlDisabled, getControlInfo, getControlShadow, getControlTextColor, getControlTextFont, getCurrentTheme, getDefaults, getDesktopColor, getDisabledSelectedIcon, getHighlightedTextColor, getInactiveControlTextColor, getInactiveSystemTextColor, getLayoutStyle, getMenuBackground, getMenuDisabledForeground, getMenuForeground, getMenuSelectedBackground, getMenuSelectedForeground, getMenuTextFont, getSeparatorBackground, getSeparatorForeground, getSubTextFont, getSupportsWindowDecorations, getSystemTextColor, getSystemTextFont, getTextHighlightColor, getUserTextColor, getUserTextFont, getWhite, getWindowBackground, getWindowTitleFont, isNativeLookAndFeel, isSupportedLookAndFeel, provideErrorFeedback, setCurrentTheme`

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

      `createAudioAction, getAudioActionMap, loadSystemColors, playSound`

    - ### Methods inherited from class javax.swing.LookAndFeel

      `getDesktopPropertyValue, installBorder, installColors, installColorsAndFont, installProperty, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, toString, uninstallBorder`

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

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

- - ### Field Detail

    - #### BORDER_STYLE_KEY

          public static final String BORDER_STYLE_KEY

      Client property key to set a border style - shadows the header style.
      See Also:
        Constant Field Values

    - #### IS_3D_KEY

          public static final String IS_3D_KEY

      Client property key to disable the pseudo 3D effect.
      See Also:
        Constant Field Values

    - #### DEFAULT_THEME_KEY

          public static final String DEFAULT_THEME_KEY

      A System property key to set the default theme.
      See Also:
        Constant Field Values

    - #### HIGH_CONTRAST_FOCUS_ENABLED_KEY

          public static final String HIGH_CONTRAST_FOCUS_ENABLED_KEY

      A System property key that indicates that the high contrast focus colors shall be choosen - if applicable. If not set, some focus colors look good but have low contrast. Basically, the low contrast scheme uses the Plastic colors before 1.0.7, and the high contrast scheme is 1.0.7 - 1.0.9.
      See Also:
        Constant Field Values

    - #### TAB_STYLE_KEY

          protected static final String TAB_STYLE_KEY

      A System property key for the rendering style of the Plastic TabbedPane. Valid values are: `default` for the Plastic 1.0 tabs, and `metal` for the Metal L&F tabs.
      See Also:
        Constant Field Values

    - #### TAB_STYLE_DEFAULT_VALUE

          public static final String TAB_STYLE_DEFAULT_VALUE

      A System property value that indicates that Plastic shall render tabs in the Plastic 1.0 style. This is the default.
      See Also:
        Constant Field Values

    - #### TAB_STYLE_METAL_VALUE

          public static final String TAB_STYLE_METAL_VALUE

      A System property value that indicates that Plastic shall render tabs in the Metal L&F style.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PlasticLookAndFeel

          public PlasticLookAndFeel()

      Constructs the PlasticLookAndFeel, creates the default theme and sets it as current Plastic theme.

  - ### Method Detail

    - #### getID

          public String getID()

      Overrides:
        `getID` in class `MetalLookAndFeel`

    - #### getName

          public String getName()

      Overrides:
        `getName` in class `MetalLookAndFeel`

    - #### getDescription

          public String getDescription()

      Overrides:
        `getDescription` in class `MetalLookAndFeel`

    - #### getFontPolicy

          public static FontPolicy getFontPolicy()

      Looks up and retrieves the FontPolicy used by the JGoodies Plastic Look&Feel family. If a FontPolicy has been set, it'll be returned. Otherwise, this method checks if a FontPolicy or FontSet is defined in the system properties or UIDefaults. If so, it is returned. If no FontPolicy has been set for this look, in the system properties or UIDefaults, the default Plastic font policy will be returned.
      Returns:
        the FontPolicy set for this Look&feel - if any, the FontPolicy specified in the system properties or UIDefaults - if any, or the default Plastic font policy.
      See Also:
        `setFontPolicy(com.jgoodies.looks.FontPolicy)`, `Options.PLASTIC_FONT_POLICY_KEY`, `FontPolicies`, `FontPolicies.customSettingsPolicy(FontPolicy)`, `FontPolicies.getDefaultPlasticPolicy()`

    - #### setFontPolicy

          public static void setFontPolicy(FontPolicy fontPolicy)

      Sets the FontPolicy to be used with the JGoodies Plastic L&F family. If the specified policy is `null`, the default will be reset.
      Parameters:
        `fontPolicy` - the FontPolicy to be used with the JGoodies Plastic L&F family, or `null` to reset to the default
      See Also:
        `getFontPolicy()`, `Options.PLASTIC_FONT_POLICY_KEY`

    - #### getMicroLayoutPolicy

          public static MicroLayoutPolicy getMicroLayoutPolicy()

      Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Plastic Look&Fs. If a MicroLayoutPolicy has been set for this look, it'll be returned. Otherwise, the default Plastic micro layout policy will be returned.
      Returns:
        the MicroLayoutPolicy set for this Look&feel - if any, or the default Plastic MicroLayoutPolicy.
      See Also:
        `setMicroLayoutPolicy(com.jgoodies.looks.MicroLayout)`, `Options.PLASTIC_MICRO_LAYOUT_POLICY_KEY`, `MicroLayoutPolicies`

    - #### setMicroLayoutPolicy

          public static void setMicroLayoutPolicy(MicroLayout microLayoutPolicy)

      Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs. If the specified policy is `null`, the default will be reset.
      Parameters:
        `microLayoutPolicy` - the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs, or `null` to reset to the default
      See Also:
        `getMicroLayoutPolicy()`, `Options.PLASTIC_MICRO_LAYOUT_POLICY_KEY`

    - #### is3DEnabled

          protected boolean is3DEnabled()

    - #### set3DEnabled

          public static void set3DEnabled(boolean b)

    - #### getTabStyle

          public static String getTabStyle()

    - #### setTabStyle

          public static void setTabStyle(String tabStyle)

    - #### getHighContrastFocusColorsEnabled

          public static boolean getHighContrastFocusColorsEnabled()

    - #### setHighContrastFocusColorsEnabled

          public static void setHighContrastFocusColorsEnabled(boolean b)

    - #### isSelectTextOnKeyboardFocusGained

          public static boolean isSelectTextOnKeyboardFocusGained()

    - #### setSelectTextOnKeyboardFocusGained

          public static void setSelectTextOnKeyboardFocusGained(boolean b)

      Sets whether text field text shall be selected when it gains focus via the keyboard. This is enabled on Windows by default and disabled on all other platforms.
      Parameters:
        `b` - `true` to enabled, `false` to disable

    - #### initialize

          public void initialize()

      Invoked during `UIManager#setLookAndFeel`. In addition to the superclass behavior, we install the ShadowPopupFactory.
      Overrides:
        `initialize` in class `BasicLookAndFeel`
      See Also:
        `uninitialize()`

    - #### uninitialize

          public void uninitialize()

      Invoked during `UIManager#setLookAndFeel`. In addition to the superclass behavior, we uninstall the ShadowPopupFactory.
      Overrides:
        `uninitialize` in class `BasicLookAndFeel`
      See Also:
        `initialize()`

    - #### getDisabledIcon

          public Icon getDisabledIcon(JComponent component,
                             Icon icon)

      Returns an icon with a disabled appearance. This method is used to generate a disabled icon when one has not been specified.

      This method will be used only on JDK 5.0 and later.

      Overrides:
        `getDisabledIcon` in class `MetalLookAndFeel`
      Parameters:
        `component` - the component that will display the icon, may be null.
        `icon` - the icon to generate disabled icon from.
      Returns:
        disabled icon, or null if a suitable icon can not be generated.

    - #### initClassDefaults

          protected void initClassDefaults(UIDefaults table)

      Initializes the class defaults, that is, overrides some UI delegates with JGoodies Plastic implementations.
      Overrides:
        `initClassDefaults` in class `MetalLookAndFeel`
      Parameters:
        `table` - the UIDefaults table to work with
      See Also:
        `BasicLookAndFeel.getDefaults()`

    - #### initComponentDefaults

          protected void initComponentDefaults(UIDefaults table)

      Overrides:
        `initComponentDefaults` in class `MetalLookAndFeel`

    - #### initSystemColorDefaults

          protected void initSystemColorDefaults(UIDefaults table)

      Unlike my superclass I register a unified shadow color. This color is used by my ThinBevelBorder class.
      Overrides:
        `initSystemColorDefaults` in class `MetalLookAndFeel`
      Parameters:
        `table` - the UIDefaults table to work with

    - #### createMyDefaultTheme

          public static PlasticTheme createMyDefaultTheme()

      Creates and returns the default color theme. Honors the current platform and platform flavor - if available.
      Returns:
        the default color theme for the current environment

    - #### getInstalledThemes

          public static List getInstalledThemes()

      Lazily initializes and returns the `List` of installed color themes.
      Returns:
        a list of installed color/font themes

    - #### installDefaultThemes

          protected static void installDefaultThemes()

      Install the default color themes.

    - #### createTheme

          protected static PlasticTheme createTheme(String themeName)

      Creates and returns a color theme from the specified theme name.
      Parameters:
        `themeName` - the unqualified name of the theme to create
      Returns:
        the associated color theme or `null` in case of a problem

    - #### installTheme

          public static void installTheme(PlasticTheme theme)

      Installs a color theme.
      Parameters:
        `theme` - the theme to install

    - #### getPlasticTheme

          public static PlasticTheme getPlasticTheme()

      Lazily initializes and returns the PlasticTheme.
      Returns:
        the current PlasticTheme

    - #### setPlasticTheme

          public static void setPlasticTheme(PlasticTheme theme)

      Sets the theme for colors and fonts used by the Plastic L&F.

      After setting the theme, you need to re-install the Look&Feel, as well as update the UI's of any previously created components - just as if you'd change the Look&Feel.

      Parameters:
        `theme` - the PlasticTheme to be set
      Throws:
        `NullPointerException` - if the theme is null.
      See Also:
        `getPlasticTheme()`

    - #### getInternalFrameBorder

          public static BorderUIResource getInternalFrameBorder()

    - #### getPaletteBorder

          public static BorderUIResource getPaletteBorder()

    - #### getPrimaryControlDarkShadow

          public static ColorUIResource getPrimaryControlDarkShadow()

    - #### getPrimaryControlHighlight

          public static ColorUIResource getPrimaryControlHighlight()

    - #### getPrimaryControlInfo

          public static ColorUIResource getPrimaryControlInfo()

    - #### getPrimaryControlShadow

          public static ColorUIResource getPrimaryControlShadow()

    - #### getPrimaryControl

          public static ColorUIResource getPrimaryControl()

    - #### getControlHighlight

          public static ColorUIResource getControlHighlight()

    - #### getControlDarkShadow

          public static ColorUIResource getControlDarkShadow()

    - #### getControl

          public static ColorUIResource getControl()

    - #### getFocusColor

          public static ColorUIResource getFocusColor()

    - #### getMenuItemBackground

          public static ColorUIResource getMenuItemBackground()

    - #### getMenuItemSelectedBackground

          public static ColorUIResource getMenuItemSelectedBackground()

    - #### getMenuItemSelectedForeground

          public static ColorUIResource getMenuItemSelectedForeground()

    - #### getWindowTitleBackground

          public static ColorUIResource getWindowTitleBackground()

    - #### getWindowTitleForeground

          public static ColorUIResource getWindowTitleForeground()

    - #### getWindowTitleInactiveBackground

          public static ColorUIResource getWindowTitleInactiveBackground()

    - #### getWindowTitleInactiveForeground

          public static ColorUIResource getWindowTitleInactiveForeground()

    - #### getSimpleInternalFrameForeground

          public static ColorUIResource getSimpleInternalFrameForeground()

    - #### getSimpleInternalFrameBackground

          public static ColorUIResource getSimpleInternalFrameBackground()

    - #### getTitleTextColor

          public static ColorUIResource getTitleTextColor()

    - #### getTitleTextFont

          public static FontUIResource getTitleTextFont()

Copyright © 2001-2014 JGoodies Software GmbH. All Rights Reserved.