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