java.lang.Object
javax.swing.plaf.nimbus.State<T>
- 类型参数:
T- 要查询其状态的组件类型
表示 Nimbus 中的内置或自定义状态。
Synth 提供了几种内置状态,它们是:
- Enabled
- 鼠标移到
- 按下
- 残疾人
- 专注
- 已选
- 默认
但是,在 LookAndFeel 中可以描述更多的状态,并且根据这些不同的状态为组件设置不同的样式会很好。例如,进度条可能是“不确定的”。允许将其定义为“状态”将非常方便。
State 类旨在用于此类情况。简单地实现抽象的#isInState 方法。如果给定的 JComponent “处于此状态”,则返回 true,否则返回 false。此方法将在 performance sensitive loops 中被调用 many 次。它必须执行得非常快。
例如,以下可能是 JProgressBars 的自定义“不确定”状态的实现:
public final class IndeterminateState extends State<JProgressBar> {
public IndeterminateState() {
super("Indeterminate");
}
@Override
protected boolean isInState(JProgressBar c) {
return c.isIndeterminate();
}
}
-
构造方法总结
构造方法 -
方法总结
-
构造方法详细信息
-
State
创建一个新的自定义状态。指定状态的名称。该名称在为任何一个特定组件设置的状态中应该是唯一的。状态名称应与 UIDefaults 中使用的名称一致。
例如,以下是正确的:
defaults.put("Button.States", "Enabled, Foo, Disabled"); defaults.put("Button.Foo", new FooState("Foo"));- 参数:
name- 状态的简单用户友好名称,例如“Indeterminate”或“EmbeddedPanel”或“Blurred”。通常使用驼峰式大小写,首字母大写。
-
-
方法详情
-
isInState
获取指定的 JComponent 是否处于此类表示的自定义状态。 This is an extremely performance sensitive loop. 请采取适当的预防措施以确保其快速执行。
Nimbus 使用此方法来帮助确定 JComponent 所处的状态。例如,JProgressBar 可以存在自定义状态,以便在进度条不确定时返回
true。这种方法的这种实现只是:return c.isIndeterminate();- 参数:
c- 要测试的 JComponent。这永远不会为空。- 返回:
-
如果
c处于此State实例表示的自定义状态,则为真
-