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.