Spec-Zone.ru › OpenJDK 21

Класс 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. Этот метод будет вызываться множество раз в чувствительных к производительности циклах. Он должен выполняться очень быстро.

Например, следующее может быть реализацией пользовательского состояния «неопределенного» для JProgressBar:


     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 в пользовательском состоянии, представленном этим классом.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

State

protected State(String name)

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

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


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

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

isInState

protected abstract boolean isInState(T c)

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

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

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

© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/plaf/nimbus/State.html

Spec-Zone.ru

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