Module java.desktop

Class NimbusLookAndFeel

All Implemented Interfaces:
Serializable

public class NimbusLookAndFeel
extends SynthLookAndFeel

The NimbusLookAndFeel class.

  • Constructor Details

    • NimbusLookAndFeel

      public NimbusLookAndFeel()
      Create a new NimbusLookAndFeel.
  • Method Details

    • initialize

      public void initialize()
      Called by UIManager when this look and feel is installed.
      Overrides:
      initialize in class SynthLookAndFeel
      See Also:
      LookAndFeel.uninitialize(), UIManager.setLookAndFeel(javax.swing.LookAndFeel)
    • uninitialize

      public void uninitialize()
      Called by UIManager when this look and feel is uninstalled.
      Overrides:
      uninitialize in class SynthLookAndFeel
      See Also:
      LookAndFeel.initialize(), UIManager.setLookAndFeel(javax.swing.LookAndFeel)
    • getStyle

      public static NimbusStyle getStyle​(JComponent c, Region r)
      Gets the style associated with the given component and region. This will never return null. If an appropriate component and region cannot be determined, then a default style is returned.
      Parameters:
      c - a non-null reference to a JComponent
      r - a non-null reference to the region of the component c
      Returns:
      a non-null reference to a NimbusStyle.
    • getName

      public String getName()
      Return a short string that identifies this look and feel. This String will be the unquoted String "Nimbus".
      Overrides:
      getName in class SynthLookAndFeel
      Returns:
      a short string identifying this look and feel.
    • getID

      public String getID()
      Return a string that identifies this look and feel. This String will be the unquoted String "Nimbus".
      Overrides:
      getID in class SynthLookAndFeel
      Returns:
      a short string identifying this look and feel.
    • getDescription

      public String getDescription()
      Returns a textual description of this look and feel.
      Overrides:
      getDescription in class SynthLookAndFeel
      Returns:
      textual description of this look and feel.
    • shouldUpdateStyleOnAncestorChanged

      public boolean shouldUpdateStyleOnAncestorChanged()
      Returns whether or not the UIs should update their SynthStyles from the SynthStyleFactory when the ancestor of the JComponent changes. A subclass that provided a SynthStyleFactory that based the return value from getStyle off the containment hierarchy would override this method to return true.
      Overrides:
      shouldUpdateStyleOnAncestorChanged in class SynthLookAndFeel
      Returns:
      true
    • shouldUpdateStyleOnEvent

      protected boolean shouldUpdateStyleOnEvent​(PropertyChangeEvent ev)
      Returns whether or not the UIs should update their styles when a particular event occurs.

      Overridden to return true when one of the following properties change:

      • "Nimbus.Overrides"
      • "Nimbus.Overrides.InheritDefaults"
      • "JComponent.sizeVariant"
      Overrides:
      shouldUpdateStyleOnEvent in class SynthLookAndFeel
      Parameters:
      ev - a PropertyChangeEvent
      Returns:
      whether or not the UIs should update their styles
      Since:
      1.7
    • register

      public void register​(Region region, String prefix)

      Registers a third party component with the NimbusLookAndFeel.

      Regions represent Components and areas within Components that act as independent painting areas. Once registered with the NimbusLookAndFeel, NimbusStyles for these Regions can be retrieved via the getStyle method.

      The NimbusLookAndFeel uses a standard naming scheme for entries in the UIDefaults table. The key for each property, state, painter, and other default registered in UIDefaults for a specific Region will begin with the specified prefix

      For example, suppose I had a component named JFoo. Suppose I then registered this component with the NimbusLookAndFeel in this manner:

      
           laf.register(NimbusFooUI.FOO_REGION, "Foo");
       

      In this case, I could then register properties for this component with UIDefaults in the following manner:

      
           UIManager.put("Foo.background", new ColorUIResource(Color.BLACK));
           UIManager.put("Foo.Enabled.backgroundPainter", new FooBackgroundPainter());
       

      It is also possible to register a named component with Nimbus. For example, suppose you wanted to style the background of a JPanel named "MyPanel" differently from other JPanels. You could accomplish this by doing the following:

      
           laf.register(Region.PANEL, "\"MyPanel\"");
           UIManager.put("\"MyPanel\".background", new ColorUIResource(Color.RED));
       
      Parameters:
      region - The Synth Region that is being registered. Such as Button, or ScrollBarThumb, or NimbusFooUI.FOO_REGION.
      prefix - The UIDefault prefix. For example, could be ComboBox, or if a named components, "MyComboBox", or even something like ToolBar."MyComboBox"."ComboBox.arrowButton"
    • getDerivedColor

      public Color getDerivedColor​(String uiDefaultParentName, float hOffset, float sOffset, float bOffset, int aOffset, boolean uiResource)
      Get a derived color, derived colors are shared instances and is color value will change when its parent UIDefault color changes.
      Parameters:
      uiDefaultParentName - The parent UIDefault key
      hOffset - The hue offset
      sOffset - The saturation offset
      bOffset - The brightness offset
      aOffset - The alpha offset
      uiResource - True if the derived color should be a UIResource, false if it should not be
      Returns:
      The stored derived color
    • getDerivedColor

      protected final Color getDerivedColor​(Color color1, Color color2, float midPoint, boolean uiResource)
      Decodes and returns a color, which is derived from an offset between two other colors.
      Parameters:
      color1 - The first color
      color2 - The second color
      midPoint - The offset between color 1 and color 2, a value of 0.0 is color 1 and 1.0 is color 2;
      uiResource - True if the derived color should be a UIResource
      Returns:
      The derived color
    • getDerivedColor

      protected final Color getDerivedColor​(Color color1, Color color2, float midPoint)
      Decodes and returns a color, which is derived from a offset between two other colors.
      Parameters:
      color1 - The first color
      color2 - The second color
      midPoint - The offset between color 1 and color 2, a value of 0.0 is color 1 and 1.0 is color 2;
      Returns:
      The derived color, which will be a UIResource