- java.lang.Object
-
- javax.swing.plaf.nimbus.State<T>
-
public abstract class State<T extends JComponent> extends Object
代表Nimbus内置或定制的状态。
Synth提供了几个内置状态,它们是:
- 启用
- 鼠标移到
- 追问
- 残
- 重点
- 选
- 默认
然而,还有更多的状态可以在LookAndFeel中描述,并且根据这些不同的状态对组件进行不同的样式组件是很好的。 例如,进度条可能是“不确定的”。 允许将其定义为“状态”是非常方便的。
这个类,国家,旨在用于这种情况。 简单地实现抽象#isInState方法。 如果给定的JComponent为“处于此状态”,则返回true,否则返回false。 该方法将被称为性能敏感的循环 多次 。 它必须很快执行。
例如,以下可能是JProgressBars的自定义“不确定”状态的实现:
public final class IndeterminateState extends State<JProgressBar> { public IndeterminateState() { super("Indeterminate"); } @Override protected boolean isInState(JProgressBar c) { return c.isIndeterminate(); } }
-
-
构造方法详细信息
-
State
protected State(String name)
创建一个新的自定义状态。 指定状态的名称。 在为任何一个特定组件设置的状态中,该名称应该是唯一的。 状态的名称应与UIDefaults中使用的名称相符。
例如,以下是正确的:
defaults.put("Button.States", "Enabled, Foo, Disabled"); defaults.put("Button.Foo", new FooState("Foo"));
- 参数
-
name
- 用于状态的简单用户友好名称,例如“Indeterminate”或“EmbeddedPanel”或“Blurred”。 习惯使用骆驼盒,首字母大写。
-
-
方法详细信息
-
toString
public String toString()
描述从类别复制:Object
返回对象的字符串表示形式。 一般来说,toString
方法返回一个字符串,“文本地表示”这个对象。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。该
toString
类方法Object
返回一个由类的名称,其中所述对象是其实例,该符号字符`的字符串@
”,并且对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
-
isInState
protected abstract boolean isInState(T c)
获取指定的JComponent是否处于由此类表示的自定义状态。 这是一个非常性能敏感的循环。 请采取适当的预防措施,以确保快速执行。
Nimbus使用此方法来帮助确定JComponent的状态。例如,JProgressBar可能存在一个自定义状态,
true
在进度条不确定时返回true
。 这种方法的实现将是:return c.isIndeterminate();
- 参数
-
c
- 测试的JComponent。 这将永远不会为空。 - 结果
-
true if
c
is in the custom state represented by thisState
instance
-
-