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中表示内置或自定义状态的类。