Spec-Zone.ru › OpenJDK 8

Интерфейс 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, когда аргумент-объект имеет тип, для которого этот редактор свойств является соответствующим. Кроме того, каждый редактор свойств должен либо поддерживать пользовательский редактор, либо поддерживать setAsText.

Каждый PropertyEditor должен иметь конструктор по умолчанию (с null).

Методы

Модификатор и тип Метод и описание
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 отвечает за подключение себя к своему редактору компонента и за отчет о изменениях значения свойства путем отправки события PropertyChange.

Код более высокого уровня, вызывающий getCustomEditor, может либо встроить компонент в более крупный лист свойств, либо поместить его в свой отдельный диалог, или ...

Возвращает:
java.awt.Component, который позволит пользователю напрямую редактировать текущее значение свойства. Может быть null, если это не поддерживается.

supportsCustomEditor

boolean supportsCustomEditor()

Определяет, поддерживает ли этот редактор свойств пользовательский редактор.

Возвращает:
True, если редактор свойств может предоставить пользовательский редактор.

addPropertyChangeListener

void addPropertyChangeListener(PropertyChangeListener listener)

Добавляет слушателя для изменения значения. Когда редактор свойств изменяет свое значение, он должен отправлять событие PropertyChangeEvent всем зарегистрированным слушателям PropertyChangeListener, указав значение 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.

Spec-Zone.ru

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