模块  java.desktop

Package javax.swing.plaf.nimbus

提供根据跨平台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