Интерфейс PropertyEditor
- Все известные реализующие классы:
PropertyEditorSupport
public interface PropertyEditor
Класс PropertyEditor предоставляет поддержку для графических интерфейсов (GUI), которые хотят позволить пользователям редактировать значение свойства заданного типа.
PropertyEditor поддерживает различные способы отображения и обновления значений свойств. Большинству PropertyEditor'ов потребуется только подмножество доступных в этом API вариантов.
Простые PropertyEditor'ы могут поддерживать только методы getAsText и setAsText и не обязаны поддерживать (например) paintValue или getCustomEditor. Более сложные типы могут не поддерживать getAsText и setAsText, но вместо этого будут поддерживать paintValue и getCustomEditor.
Каждый PropertyEditor должен поддерживать один или несколько из трех простых стилей отображения. Таким образом, он может либо (1) поддерживать isPaintable, либо (2) возвращать непустой массив String[] из getTags() и возвращать непустое значение из getAsText, либо (3) просто возвращать непустую строку из getAsText().
Каждый редактор свойств должен поддерживать вызов setValue, когда аргумент object имеет тип, для которого этот редактор свойств является соответствующим. Кроме того, каждый редактор свойств должен либо поддерживать пользовательский редактор, либо поддерживать setAsText.
Каждый PropertyEditor должен иметь конструктор по умолчанию (null).
- С момента:
- 1.1
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener) |
Добавляет слушатель для изменения значения. |
String |
getAsText() |
Получает значение свойства в виде текста. |
Component |
getCustomEditor() |
PropertyEditor может предоставить полный пользовательский компонент для редактирования значения свойства. |
String |
getJavaInitializationString() |
Возвращает фрагмент кода Java, который можно использовать для установки свойства, чтобы оно соответствовало текущему состоянию редактора. |
String[] |
getTags() |
Если значение свойства должно быть одним из набора известных меченых значений, то этот метод должен вернуть массив меток. |
Object |
getValue() |
Получает значение свойства. |
boolean |
isPaintable() |
Определяет, является ли этот редактор свойства рисовательным. |
void |
paintValue(Graphics gfx,
Rectangle box) |
Отображает представление значения в заданной области экрана. |
void |
removePropertyChangeListener(PropertyChangeListener listener) |
Удаляет слушателя для изменения значения. |
void |
setAsText(String text) |
Устанавливает значение свойства, проанализировав заданную строку. |
void |
setValue(Object value) |
Устанавливает (или изменяет) объект, который должен быть отредактирован. |
boolean |
supportsCustomEditor() |
Определяет, поддерживает ли этот редактор свойств пользовательский редактор. |
Методы
setValue
void setValue(Object value)
Устанавливает (или изменяет) объект, который должен быть отредактирован. Примитивные типы, такие как "int", должны быть обернуты как соответствующий тип объекта, например, "java.lang.Integer".
- Параметры:
-
value- Новый целевой объект для редактирования. Обратите внимание, что этот объект не должен изменяться PropertyEditor, а PropertyEditor должен создать новый объект для хранения любого изменённого значения.
getValue
Object getValue()
Получает значение свойства.
- Возвращает:
- Значение свойства. Примитивные типы, такие как "int", будут обернуты как соответствующий тип объекта, например, "java.lang.Integer".
isPaintable
boolean isPaintable()
Определяет, является ли этот редактор свойства рисовательным.
- Возвращает:
- True, если класс будет соблюдать метод paintValue.
paintValue
void paintValue(Graphics gfx,
Rectangle box)
Отображает представление значения в заданной области экрана. Обратите внимание, что PropertyEditor отвечает за выполнение собственной обрезки, чтобы она поместилась в заданный прямоугольник.
Если PropertyEditor не поддерживает запросы рисования (см. isPaintable), этот метод должен быть тихим "noop".
У объекта Graphics будет шрифт, цвет и т. д. по умолчанию родительского контейнера. PropertyEditor может изменять атрибуты графики, такие как шрифт и цвет, и ему не нужно восстанавливать старые значения.
- Параметры:
-
gfx- Объект Graphics для рисования. -
box- Прямоугольник внутри объекта Graphics, в котором мы должны нарисовать.
getJavaInitializationString
String getJavaInitializationString()
Возвращает фрагмент кода Java, который можно использовать для установки свойства, чтобы оно соответствовало текущему состоянию редактора. Этот метод предназначен для использования при генерации кода Java для отражения изменений, внесенных через редактор свойств.
Фрагмент кода должен быть независимым от контекста и должен быть законным выражением Java, как указано в JLS.
В частности, если выражение представляет вычисление, то все классы и статические члены должны быть полностью квалифицированы. Это правило относится к конструкторам, статическим методам и не примитивным аргументам.
Следует проявлять осторожность при оценке выражения, так как оно может генерировать исключения. В частности, генераторы кода должны убедиться, что сгенерированный код будет компилироваться в присутствии выражения, которое может генерировать проверяемые исключения.
Примеры результатов:
- Выражение примитивного типа:
2 - Конструктор класса:
new java.awt.Color(127,127,34) - Статическое поле:
java.awt.Color.orange - Статический метод:
javax.swing.Box.createRigidArea(new java.awt.Dimension(0, 5))
- Возвращает:
- фрагмент кода Java, представляющий инициализатор текущего значения. Он не должен содержать точку с запятой (';') для завершения выражения.
getAsText
String getAsText()
Получает значение свойства в виде текста.
- Возвращает:
- Значение свойства в виде редактируемой человеком строки.
Возвращает null, если значение нельзя выразить как редактируемую строку.
Если возвращено ненулевое значение, PropertyEditor должен быть готов проанализировать эту строку в setAsText().
setAsText
void setAsText(String text)
throws IllegalArgumentException
Устанавливает значение свойства, проанализировав заданную строку. Может сгенерировать java.lang.IllegalArgumentException, если строка имеет неправильный формат или этот тип свойства нельзя выразить в виде текста.
- Параметры:
-
text- Строка для анализа. - Исключения:
IllegalArgumentException
getTags
String[] getTags()
Если значение свойства должно быть одним из набора известных меченых значений, то этот метод должен вернуть массив меток. Это можно использовать для представления (например), значений перечислений. Если PropertyEditor поддерживает метки, то он должен поддерживать использование setAsText со значением метки в качестве способа установки значения и использование getAsText для идентификации текущего значения.
- Возвращает:
- Значения меток для этого свойства. Может быть null, если это свойство нельзя представить как меченное значение.
getCustomEditor
Component getCustomEditor()
PropertyEditor может предоставить полный пользовательский компонент для редактирования значения свойства. PropertyEditor несет ответственность за подключение к своему редактору Component и за отчет о изменениях значения свойства, сгенерировав событие PropertyChange.
Код более высокого уровня, вызывающий getCustomEditor, может либо встроить компонент в более крупную панель свойств, либо поместить его в отдельное диалоговое окно, или ...
- Возвращает:
- java.awt.Component, который позволит пользователю напрямую редактировать текущее значение свойства. Может быть null, если это не поддерживается.
supportsCustomEditor
boolean supportsCustomEditor()
Определяет, поддерживает ли этот редактор свойств пользовательский редактор.
- Возвращает:
- True, если PropertyEditor может предоставить пользовательский редактор.
addPropertyChangeListener
void addPropertyChangeListener(PropertyChangeListener listener)
Добавляет слушателя для изменения значения. При изменении значения редактором свойств он должен генерировать событие PropertyChangeEvent для всех зарегистрированных PropertyChangeListeners, указав значение null для имени свойства и себя в качестве источника.
- Параметры:
-
listener-PropertyChangeListenerдля добавления
removePropertyChangeListener
void removePropertyChangeListener(PropertyChangeListener listener)
Удаляет слушателя для изменения значения.
- Параметры:
-
listener-PropertyChangeListenerдля удаления
© 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/java/beans/PropertyEditor.html