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
而不更新任何JComponent
的相应ComponentUI
也可能产生意外结果,例如显示错误的颜色,并且通常不鼓励。
注意:大多数Swing API 都不是线程安全的。 有关详细信息,请参阅Concurrency in Swing ,在部分The Java Tutorial 。
- 从以下版本开始:
- 1.7
-
类摘要 类 描述 AbstractRegionPainter 方便的基类,用于定义用于在Nimbus中呈现区域或组件的Painter实例。AbstractRegionPainter.PaintContext 绘制时有用的类封装状态。NimbusLookAndFeel NimbusLookAndFeel类。NimbusStyle Nimbus使用的SynthStyle实现。State<T extends JComponent> 表示Nimbus中的内置或自定义状态。 -
枚举摘要 Enum 描述 AbstractRegionPainter.PaintContext.CacheMode Cache mode.