Package 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
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 $
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Client property key to set a border style - shadows the header style.static final String
A System property key to set the default theme.static final String
A System property key that indicates that the high contrast focus colors shall be choosen - if applicable.private static List
<PlasticTheme> The List of installed Plastic themes.static final String
Client property key to disable the pseudo 3D effect.private static boolean
The look-global state for the 3D enablement.private static boolean
static final String
A System property value that indicates that Plastic shall render tabs in the Plastic 1.0 style.protected static final String
A System property key for the rendering style of the Plastic TabbedPane.static final String
A System property value that indicates that Plastic shall render tabs in the Metal L&F style.private static final String
private static boolean
Holds whether we are using the high contrast focus colors.private static boolean
Holds whether Plastic uses Metal or Plastic tabbed panes. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs the PlasticLookAndFeel, creates the default theme and sets it as current Plastic theme. -
Method Summary
Modifier and TypeMethodDescriptionprivate static Object[]
Appends the key and value to the given source array and returns a copy that has the two new elements at its end.static PlasticTheme
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
static ColorUIResource
static ColorUIResource
private static String
getDisabledIcon
(JComponent component, Icon icon) Returns an icon with a disabled appearance.static ColorUIResource
static FontPolicy
Looks up and retrieves the FontPolicy used by the JGoodies Plastic Look&Feel family.static boolean
getID()
static List
Lazily initializes and returns theList
of installed color themes.static BorderUIResource
static ColorUIResource
static ColorUIResource
static ColorUIResource
static MicroLayoutPolicy
Looks up and retrieves the MicroLayoutPolicy used by the JGoodies Plastic Look&Fs.getName()
static BorderUIResource
static PlasticTheme
Lazily initializes and returns the PlasticTheme.static ColorUIResource
static ColorUIResource
static ColorUIResource
static ColorUIResource
static ColorUIResource
static ColorUIResource
static ColorUIResource
static String
static ColorUIResource
static FontUIResource
static ColorUIResource
static ColorUIResource
static ColorUIResource
static ColorUIResource
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
Invoked duringUIManager#setLookAndFeel
.protected void
Unlike my superclass I register a unified shadow color.protected static void
Install the default color themes.static void
installTheme
(PlasticTheme theme) Installs a color theme.protected boolean
static boolean
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
(MicroLayoutPolicy 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
Invoked duringUIManager#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
-
Field Details
-
BORDER_STYLE_KEY
Client property key to set a border style - shadows the header style.- See Also:
-
IS_3D_KEY
Client property key to disable the pseudo 3D effect.- See Also:
-
DEFAULT_THEME_KEY
A System property key to set the default theme.- See Also:
-
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:
-
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:
-
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:
-
TAB_STYLE_METAL_VALUE
A System property value that indicates that Plastic shall render tabs in the Metal L&F style.- See Also:
-
useMetalTabs
private static boolean useMetalTabsHolds whether Plastic uses Metal or Plastic tabbed panes. -
useHighContrastFocusColors
private static boolean useHighContrastFocusColorsHolds whether we are using the high contrast focus colors. -
installedThemes
The List of installed Plastic themes. -
is3DEnabled
private static boolean is3DEnabledThe look-global state for the 3D enablement. -
selectTextOnKeyboardFocusGained
private static boolean selectTextOnKeyboardFocusGained -
THEME_CLASSNAME_PREFIX
- See Also:
-
-
Constructor Details
-
PlasticLookAndFeel
public PlasticLookAndFeel()Constructs the PlasticLookAndFeel, creates the default theme and sets it as current Plastic theme.
-
-
Method Details
-
getID
- Overrides:
getID
in classMetalLookAndFeel
-
getName
- Overrides:
getName
in classMetalLookAndFeel
-
getDescription
- Overrides:
getDescription
in classMetalLookAndFeel
-
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
Sets the FontPolicy to be used with the JGoodies Plastic L&F family. If the specified policy isnull
, the default will be reset.- Parameters:
fontPolicy
- the FontPolicy to be used with the JGoodies Plastic L&F family, ornull
to reset to the default- See Also:
-
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
Sets the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs. If the specified policy isnull
, the default will be reset.- Parameters:
microLayoutPolicy
- the MicroLayoutPolicy to be used with the JGoodies Plastic L&Fs, ornull
to reset to the default- See Also:
-
is3DEnabled
protected boolean is3DEnabled() -
set3DEnabled
public static void set3DEnabled(boolean b) -
getTabStyle
-
setTabStyle
-
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 duringUIManager#setLookAndFeel
. In addition to the superclass behavior, we install the ShadowPopupFactory.- Overrides:
initialize
in classBasicLookAndFeel
- See Also:
-
uninitialize
public void uninitialize()Invoked duringUIManager#setLookAndFeel
. In addition to the superclass behavior, we uninstall the ShadowPopupFactory.- Overrides:
uninitialize
in classBasicLookAndFeel
- See Also:
-
getDisabledIcon
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 classMetalLookAndFeel
- 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
Initializes the class defaults, that is, overrides some UI delegates with JGoodies Plastic implementations.- Overrides:
initClassDefaults
in classMetalLookAndFeel
- Parameters:
table
- the UIDefaults table to work with- See Also:
-
initComponentDefaults
- Overrides:
initComponentDefaults
in classMetalLookAndFeel
-
initSystemColorDefaults
Unlike my superclass I register a unified shadow color. This color is used by my ThinBevelBorder class.- Overrides:
initSystemColorDefaults
in classMetalLookAndFeel
- Parameters:
table
- the UIDefaults table to work with
-
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
-
getDefaultXPTheme
-
getInstalledThemes
Lazily initializes and returns theList
of installed color themes.- Returns:
- a list of installed color/font themes
-
installDefaultThemes
protected static void installDefaultThemes()Install the default color themes. -
createTheme
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
Installs a color theme.- Parameters:
theme
- the theme to install
-
getPlasticTheme
Lazily initializes and returns the PlasticTheme.- Returns:
- the current PlasticTheme
-
setPlasticTheme
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:
-
getInternalFrameBorder
-
getPaletteBorder
-
getPrimaryControlDarkShadow
-
getPrimaryControlHighlight
-
getPrimaryControlInfo
-
getPrimaryControlShadow
-
getPrimaryControl
-
getControlHighlight
-
getControlDarkShadow
-
getControl
-
getFocusColor
-
getMenuItemBackground
-
getMenuItemSelectedBackground
-
getMenuItemSelectedForeground
-
getWindowTitleBackground
-
getWindowTitleForeground
-
getWindowTitleInactiveBackground
-
getWindowTitleInactiveForeground
-
getSimpleInternalFrameForeground
-
getSimpleInternalFrameBackground
-
getTitleTextColor
-
getTitleTextFont
-
append
Appends the key and value to the given source array and returns a copy that has the two new elements at its end.- Returns:
- an array with the key and value appended
-