包 javax.swing.plaf.nimbus
Nimbus 使用 Painter
接口的实例来绘制组件。对于每个 Swing 组件,它都关联一个前景和一个背景 Painter
,并且对于不同的组件状态可能有多个 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 设置,但仅适用于该特定组件实例。布尔类型的可选客户端属性“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 中的颜色源自 原色 的核心集。还有 二次色 ,它们是从原色派生出来的,但它们本身作为其他派生颜色的基色。派生机制允许运行时定制,即如果主色或辅助色发生变化,所有从中派生的颜色都会自动更新。 NimbusLookAndFeel.getDerivedColor(java.lang.String, float, float, float, int, boolean)
方法可用于创建派生颜色。
这些类旨在在安装相应的 LookAndFeel
类 (UIManager.setLookAndFeel(new XXXLookAndFeel())
) 时使用。在安装不同的 LookAndFeel
时使用它们可能会产生意外结果,包括异常。此外,更改由 UIManager
维护的 LookAndFeel
而不更新任何 JComponent
的相应 ComponentUI
也可能产生意外结果,例如显示错误的颜色,通常不鼓励这样做。
Note: 大多数 Swing API 都是 not 线程安全的。有关详细信息,请参阅 Swing 中的并发,The Java Tutorial 中的一个部分。
- 自从:
- 1.7
-
类描述用于定义用于在 Nimbus 中渲染区域或组件的 Painter 实例的便捷基类。一个封装状态的类,在绘画时很有用。缓存模式。NimbusLookAndFeel 类。Nimbus 使用的 SynthStyle 实现。State <T 扩展 JComponent >表示 Nimbus 中的内置或自定义状态。