Module  java.desktop

Class State<T extends JComponent>



  • 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())
         
        重写:
        toStringObject
        结果
        对象的字符串表示形式。
      • 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 this State instance