Package javax.swing.plaf.nimbus
Nimbus使用Painter
接口的实例来绘制组件。 对于每个Swing组件,它将前景和后台Painter
相关联,并且可能有几个画家用于不同的组件状态。
Nimbus允许通过更改UIDefaults
表来定制其许多属性,包括画家。 以下是一个例子:
UIManager.put("ProgressBar.tileWidth", myTileWidth);
UIManager.put("ProgressBar[Enabled].backgroundPainter", myBgPainter);
UIManager.put("ProgressBar[Enabled].foregroundPainter", myFgPainter);
每个组件的定制也是可能的。 渲染组件时,Nimbus检查其名为“Nimbus.Overrides”的客户端属性。 该属性的值应为UIDefaults
一个实例。 该表中的设置将覆盖UIManager设置,但仅适用于该特定组件实例。 类型为Boolean的可选客户端属性“Nimbus.Overrides.InheritDefaults”指定是否应将覆盖设置与默认设置合并( true
)或替换它们( false
)。 默认情况下,它们被合并:
JProgressBar bar = new JProgressBar();
UIDefaults overrides = new UIDefaults();
overrides.put("ProgressBar.cycleTime", 330);
...
bar.putClientProperty("Nimbus.Overrides", overrides);
bar.putClientProperty("Nimbus.Overrides.InheritDefaults", false);
Nimbus中的颜色来自primary colors的核心集。 还有secondary colors ,它们是从主要的派生而成,但它们可以作为其他派生颜色的基本颜色。 派生机制允许运行时定制,即如果主要或次要颜色被更改,则从其派生的所有颜色都会自动更新。 方法NimbusLookAndFeel.getDerivedColor(java.lang.String, float, float, float, int, boolean)
可以用于创建派生颜色。
这些类被设计为在安装相应的LookAndFeel
类时使用( UIManager.setLookAndFeel(new XXXLookAndFeel())
)。 在安装不同的LookAndFeel
使用它们可能会产生意外的结果,包括异常。 另外,更改LookAndFeel
维持UIManager
而不更新相应的ComponentUI
的任何JComponent
s也可能产生意想不到的结果,如出现错误的颜色,并且一般不鼓励。
注意:大多数Swing API 不是线程安全的。 有关详细信息,请参阅Concurrency in Swing ,在一节The Java Tutorial 。
- 从以下版本开始:
- 1.7
-
类摘要 Class 描述 AbstractRegionPainter 方便的基类,用于定义Painter实例,用于渲染Nimbus中的区域或组件。AbstractRegionPainter.PaintContext 一个类封装状态在绘画时有用。NimbusLookAndFeel NimbusLookAndFeel类。NimbusStyle Nimbus使用的SynthStyle实现。State<T extends JComponent> 代表Nimbus内置或定制的状态。 -
枚举摘要 Enum 描述 AbstractRegionPainter.PaintContext.CacheMode Cache mode.