java.lang.Object | ||
↳ | javax.swing.plaf.synth.SynthStyle | |
↳ | com.sun.java.swing.plaf.nimbus.NimbusStyle |
A SynthStyle implementation used by Nimbus. Each Region that has been registered with the NimbusLookAndFeel will have an associated NimbusStyle. Third party components that are registered with the NimbusLookAndFeel will therefore be handed a NimbusStyle from the look and feel from the #getStyle(JComponent, Region) method.
This class properly reads and retrieves values placed in the UIDefaults according to the standard Nimbus naming conventions. It will create and retrieve painters, fonts, colors, and other data stored there.
NimbusStyle also supports the ability to override settings on a per component basis. NimbusStyle checks the component's client property map for "Nimbus.Overrides". If the value associated with this key is an instance of UIDefaults, then the values in that defaults table will override the standard Nimbus defaults in UIManager, but for that component instance only.
Optionally, you may specify the client property "Nimbus.Overrides.InheritDefaults". If true, this client property indicates that the defaults located in UIManager should first be read, and then replaced with defaults located in the component client properties. If false, then only the defaults located in the component client property map will be used. If not specified, it is assumed to be true.
You must specify "Nimbus.Overrides" for "Nimbus.Overrides.InheritDefaults" to have any effect. "Nimbus.Overrides" indicates whether there are any overrides, while "Nimbus.Overrides.InheritDefaults" indicates whether those overrides should first be initialized with the defaults from UIManager.
The NimbusStyle is reloaded whenever a property change event is fired for a component for "Nimbus.Overrides" or "Nimbus.Overrides.InheritDefaults". So for example, setting a new UIDefaults on a component would cause the style to be reloaded.
The values are only read out of UIManager once, and then cached. If you need to read the values again (for example, if the UI is being reloaded), then discard this NimbusStyle and read a new one from NimbusLookAndFeel using NimbusLookAndFeel.getStyle.
The primary API of interest in this class for 3rd party component authors are the three methods which retrieve painters: #getBackgroundPainter, #getForegroundPainter, and #getBorderPainter.
NimbusStyle allows you to specify custom states, or modify the order of states. Synth (and thus Nimbus) has the concept of a "state". For example, a JButton might be in the "MOUSE_OVER" state, or the "ENABLED" state, or the "DISABLED" state. These are all "standard" states which are defined in synth, and which apply to all synth Regions.
Sometimes, however, you need to have a custom state. For example, you want JButton to render differently if it's parent is a JToolbar. In Nimbus, you specify these custom states by including a special key in UIDefaults. The following UIDefaults entries define three states for this button:
JButton.States = Enabled, Disabled, Toolbar
JButton[Enabled].backgroundPainter = somePainter
JButton[Disabled].background = BLUE
JButton[Toolbar].backgroundPainter = someOtherPaint
As you can see, the JButton.States
entry lists the states
that the JButton style will support. You then specify the settings for
each state. If you do not specify the JButton.States
entry,
then the standard Synth states will be assumed. If you specify the entry
but the list of states is empty or null, then the standard synth states
will be assumed.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | LARGE_KEY | ||||||||||
double | LARGE_SCALE | ||||||||||
String | MINI_KEY | ||||||||||
double | MINI_SCALE | ||||||||||
String | SMALL_KEY | ||||||||||
double | SMALL_SCALE |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Getter for a region specific style property.
| |||||||||||
Gets the appropriate background Painter, if there is one, for the state
specified in the given SynthContext.
| |||||||||||
Gets the appropriate border Painter, if there is one, for the state
specified in the given SynthContext.
| |||||||||||
Gets the appropriate foreground Painter, if there is one, for the state
specified in the given SynthContext.
| |||||||||||
Returns the Insets that are used to calculate sizing information.
| |||||||||||
Returns the
SynthPainter that will be used for painting. | |||||||||||
Installs the necessary state from this Style on the
JComponent from context . | |||||||||||
Returns true if the region is opaque.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns the color for the specified state.
| |||||||||||
Returns the font for the specified state.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
javax.swing.plaf.synth.SynthStyle
| |||||||||||
From class
java.lang.Object
|
Getter for a region specific style property.
ctx | SynthContext identifying requester |
---|---|
key | must not be null |
Gets the appropriate background Painter, if there is one, for the state specified in the given SynthContext. This method does appropriate fallback searching, as described in #get.
ctx | The SynthContext. Must not be null. |
---|
Gets the appropriate border Painter, if there is one, for the state specified in the given SynthContext. This method does appropriate fallback searching, as described in #get.
ctx | The SynthContext. Must not be null. |
---|
Gets the appropriate foreground Painter, if there is one, for the state specified in the given SynthContext. This method does appropriate fallback searching, as described in #get.
ctx | The SynthContext. Must not be null. |
---|
Returns the Insets that are used to calculate sizing information.
ctx | SynthContext identifying requester |
---|---|
in | Insets to place return value in. |
Returns the SynthPainter
that will be used for painting.
This may return null.
ctx | SynthContext identifying requester |
---|
Installs the necessary state from this Style on the
JComponent
from context
.
ctx | SynthContext identifying component to install properties to. |
---|
Returns true if the region is opaque.
ctx | SynthContext identifying requester |
---|
Returns the color for the specified state. This should NOT call any
methods on the JComponent
.
ctx | SynthContext identifying requester |
---|---|
type | Type of color being requested. |
Returns the font for the specified state. This should NOT call any
method on the JComponent
.
ctx | SynthContext identifying requester |
---|