Spec-Zone.ru › OpenJDK 25

Интерфейс PropertyEditor

Все известные реализующие классы:
PropertyEditorSupport
public interface PropertyEditor
Класс PropertyEditor предоставляет поддержку графических интерфейсов, позволяющих пользователям редактировать значение свойства заданного типа.

PropertyEditor поддерживает различные способы отображения и обновления значений свойств. Большинству PropertyEditor потребуется поддерживать лишь часть различных возможностей, доступных в этом API.

Простым PropertyEditor может быть достаточно поддержки методов getAsText и setAsText; поддерживать, например, paintValue или getCustomEditor необязательно. Более сложные типы могут не поддерживать getAsText и setAsText, но вместо этого поддерживать paintValue и getCustomEditor.

Каждый редактор свойств должен поддерживать один или несколько из трех простых стилей отображения. Таким образом, он может (1) поддерживать isPaintable или (2) возвращать ненулевой String[] из getTags() и ненулевое значение из getAsText либо (3) просто возвращать ненулевой String из getAsText().

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

Каждый PropertyEditor должен иметь конструктор без параметров.

Начиная с версии:
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 не поддерживает запросы на отрисовку (см. isPaintable), этот метод должен ничего не делать и не выдавать ошибок.

Переданный объект 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()
Если значение свойства должно быть одним из набора известных помеченных значений, этот метод должен возвращать массив меток. Это можно использовать, например, для представления значений enum. Если PropertyEditor поддерживает метки, он должен поддерживать использование setAsText с меткой для установки значения, а также использование getAsText для определения текущего значения.
Возвращает:
Значения меток для этого свойства. Может возвращать null, если это свойство нельзя представить в виде помеченного значения.

getCustomEditor

Component getCustomEditor()
PropertyEditor может предоставить полноценный пользовательский компонент для редактирования значения своего свойства. PropertyEditor отвечает за подключение этого компонента редактора и за уведомление об изменениях значения свойства путем отправки события PropertyChange.

Код более высокого уровня, вызывающий 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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/beans/PropertyEditor.html

Spec-Zone.ru

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