Package javax.swing.plaf.nimbus
Nimbus使用Painter
接口的实例来绘制组件。对于每个Swing组件,它关联一个前景和一个背景Painter
,并且可能有多个用于不同组件状态的painter。
Nimbus允许通过修改UIDefaults
表来自定义许多属性,包括painters。以下是一个示例:
UIManager.put("ProgressBar.tileWidth", myTileWidth); UIManager.put("ProgressBar[Enabled].backgroundPainter", myBgPainter); UIManager.put("ProgressBar[Enabled].foregroundPainter", myFgPainter);
也可以进行每个组件的定制。在渲染组件时,Nimbus会检查其名为"Nimbus.Overrides"的客户端属性。该属性的值应该是UIDefaults
的一个实例。该表中的设置会覆盖UIManager的设置,但仅适用于该特定组件实例。一个名为"Nimbus.Overrides.InheritDefaults"的可选客户端属性,类型为Boolean,指定覆盖设置是否应与默认设置合并(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中的颜色是从一组主要颜色派生的。还有次要颜色,它们是从主要颜色派生的,但本身作为其他派生颜色的基色。派生机制允许运行时定制,即如果更改了主要或次要颜色,则从中派生的所有颜色都会自动更新。方法NimbusLookAndFeel.getDerivedColor(java.lang.String, float, float, float, int, boolean)
可用于创建派生颜色。
这些类设计用于在安装相应的LookAndFeel
类时使用(UIManager.setLookAndFeel(new XXXLookAndFeel())
)。在安装不同的LookAndFeel
时使用它们可能会产生意外结果,包括异常。此外,更改UIManager
维护的LookAndFeel
而不更新任何JComponent
的相应ComponentUI
也可能产生意外结果,例如显示错误的颜色,并且通常不鼓励这样做。
注意:大多数Swing API都不是线程安全的。详情请参阅Swing中的并发性,这是Java教程中的一节。
- 自版本:
- 1.7
-
ClassDescription用于为在Nimbus中渲染区域或组件定义Painter实例的方便基类。封装在绘制时有用的状态的类。缓存模式。NimbusLookAndFeel类。Nimbus使用的SynthStyle实现。State<T extends JComponent>在Nimbus中表示内置或自定义状态的类。