public abstract class State<T extends JComponent> extends Object
Представляет встроенное, или пользовательское, состояние в Нимбе.
Синтезатор обеспечивает несколько созданные в состояниях, которые являются:
Однако, есть еще много состояний, которые могли быть описаны в LookAndFeel, и будет хорошо разработать компоненты, по-другому основанные на этих различных состояниях. Например, индикатор выполнения мог быть "неопределенным". Было бы очень удобно позволить этому быть определенным как "состояние".
Этот class, государство, предназначается, чтобы использоваться для таких ситуаций. Просто реализуйте абстрактный метод #isInState. Это возвращает true, если данный JComponent "в этом состоянии", ложь иначе. Этот метод вызовут много раз в производительности чувствительными циклами. Это должно выполниться очень быстро.
Например, следующее могло бы быть реализацией пользовательского "Неопределенного" состояния для 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 в пользовательском состоянии, представленном этим class.
|
Строка |
toString()
Возвращает строковое представление объекта.
|
protected State(String name)
Создайте новое пользовательское государство. Определите имя для состояния. Имя должно быть уникальным в пределах набора состояний для любого определенного компонента. Имя состояния должно совпасть с именем, используемым в UIDefaults.
Например, следующее было бы корректно:
defaults.put("Button.States", "Enabled, Foo, Disabled");
defaults.put("Button.Foo", new FooState("Foo"));
name
- простое удобное для пользователя имя для состояния, такой как "Неопределенный" или "EmbeddedPanel" или "Размытый". Это общепринято, чтобы использовать Camel-регистр с первой использованной для своей выгоды буквой.public String toString()
Object
toString
метод возвращает строку, которая "дословно представляет" этот объект. Результатом должно быть краткое, но информативное представление, которое легко для человека читать. Рекомендуется, чтобы все подклассы переопределили этот метод. toString
метод для class Object
возвращает строку, состоящую из имени class, которого объект является экземпляром, символ знака at-sign`@
', и шестнадцатеричное представление без знака хэш-кода объекта. Другими словами этот метод возвращает строку, равную значению:
getClass().getName() + '@' + Integer.toHexString(hashCode())
protected abstract boolean isInState(T c)
Добирается, является ли указанный JComponent в пользовательском состоянии, представленном этим class. Это чрезвычайно производительность чувствительный цикл. Пожалуйста, возьмите надлежащие предосторожности, чтобы гарантировать, что это выполняется быстро.
Нимб использует этот метод, чтобы помочь определить то, что утверждает, что JComponent находится в. Например, пользовательское государство могло существовать для JProgressBar так, что, это возвратится true
когда индикатор выполнения неопределенен. Такая реализация этого метода просто была бы:
return c.isIndeterminate();
c
- JComponent, чтобы протестировать. Это никогда не будет нулем.c
находится в пользовательском состоянии, представленном этим State
экземпляр
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92