Класс State<T extends JComponent>
- Параметры типа:
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();
}
}
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новое пользовательское состояние. |
Краткое описание методов
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Проверяет, «равен ли» этот объект другому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова 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
© 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.