Класс State<T extends JComponent>

public abstract class State<T extends JComponent>
extends Object

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

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

  • Включено
  • Наведение курсора
  • Нажатие
  • Выключено
  • Фокусировка
  • Выбрано
  • По умолчанию

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

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

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

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

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

Конструкторы

МодификаторКонструкторОписание
protected State​(String name)

Создаёт новое пользовательское состояние.

Методы

Модификатор и типМетодОписание
protected abstract booleanisInState​(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" или "Размыто". Обычно используется регистр camel case с заглавной первой буквы.

Методы

isInState

protected abstract boolean isInState(T c)

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

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

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

© 1993, 2020, 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/11/docs/api/java.desktop/javax/swing/plaf/nimbus/State.html

Spec-Zone .ru
спецификации, руководства, описания, API