Spec-Zone.ru › OpenJDK 27

Класс State<T extends JComponent>

java.lang.Object
javax.swing.plaf.nimbus.State<T>
Параметры типа:
T - тип компонента, состояние которого требуется проверить
public abstract class State<T extends JComponent> extends Object

Представляет встроенное или пользовательское состояние в Nimbus.

Synth предоставляет несколько встроенных состояний:

  • Включён
  • Под указателем мыши
  • Нажат
  • Отключён
  • В фокусе
  • Выбран
  • По умолчанию

Однако существует множество других состояний, которые можно описать в LookAndFeel, и было бы удобно по-разному оформлять компоненты в зависимости от этих состояний. Например, индикатор выполнения может быть «неопределённым». Было бы очень удобно определять это как «состояние».

Класс State предназначен для подобных случаев. Достаточно реализовать абстрактный метод #isInState. Он возвращает true, если заданный JComponent «находится в этом состоянии», и false в противном случае. Этот метод будет вызываться много раз в циклах, чувствительных к производительности. Он должен выполняться очень быстро.

Например, пользовательское состояние «Indeterminate» для JProgressBars можно реализовать следующим образом:

    public final class IndeterminateState extends State<JProgressBar> {
        public IndeterminateState() {
            super("Indeterminate");
        }

        @Override
        protected boolean isInState(JProgressBar c) {
            return c.isIndeterminate();
        }
    }

Краткое описание конструкторов

State(String name)
Модификатор Конструктор Описание
protected
Создаёт новое пользовательское состояние.

Краткое описание методов

Модификатор и тип Метод Описание
protected abstract boolean isInState(T c)
Определяет, находится ли указанный JComponent в пользовательском состоянии, представленном этим классом.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Проверяет, «равен ли» этот объект другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Метод завершения работы устарел и может быть удалён в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

State

protected State(String name)

Создаёт новое пользовательское состояние. Задайте имя состояния. Имя должно быть уникальным среди состояний, заданных для конкретного компонента. Имя состояния должно совпадать с именем, используемым в UIDefaults.

Например, корректным будет следующий вариант:

    defaults.put("Button.States", "Enabled, Foo, Disabled");
    defaults.put("Button.Foo", new FooState("Foo"));
Параметры:
name - простое и понятное пользователю имя состояния, например «Indeterminate», «EmbeddedPanel» или «Blurred». Принято использовать верблюжий регистр с заглавной первой буквой.

Подробное описание методов

isInState

protected abstract boolean isInState(T c)

Определяет, находится ли указанный JComponent в пользовательском состоянии, представленном этим классом. Этот цикл крайне чувствителен к производительности. Примите необходимые меры, чтобы обеспечить его быстрое выполнение.

Nimbus использует этот метод, чтобы определить состояние JComponent. Например, для JProgressBar может быть задано пользовательское состояние, при котором метод возвращает true, если индикатор выполнения находится в неопределённом состоянии. Реализация этого метода в таком случае будет выглядеть следующим образом:

 return c.isIndeterminate();
Параметры:
c - проверяемый JComponent. Это значение никогда не равно null.
Возвращает:
true, если c находится в пользовательском состоянии, представленном этим экземпляром State

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, способы обхода проблем и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API