Spec-Zone.ru › OpenJDK 8

Класс State<T extends JComponent>

  • java.lang.Object
    • javax.swing.plaf.nimbus.State<T>

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 boolean isInState(T c)

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

String toString()

Возвращает строковое представление объекта.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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» или «Размытый». Обычно используется регистр camelCase, первая буква заглавная.

Методы

toString

public String toString()

Описание скопировано из класса: Object

Возвращает строковое представление объекта. В общем случае метод toString возвращает строку, которая «текстуально представляет» этот объект. Результат должен быть кратким, но информативным представлением, удобным для чтения человеком. Рекомендуется, чтобы все подклассы переопределяли этот метод.

Метод toString для класса Object возвращает строку, состоящую из имени класса, к которому относится объект, символа «@» `@', и шестнадцатеричного представления хэш-кода объекта. Другими словами, этот метод возвращает строку, равную значению:

getClass().getName() + '@' + Integer.toHexString(hashCode())
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта.

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.

Spec-Zone.ru

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