Spec-Zone .ru
спецификации, руководства, описания, API
След: Создание GUI С JFC/Swing
Урок: Пишущие Слушатели События
Раздел: Реализующие Слушатели для Обычно Обрабатываемых Событий
Как Записать Слушателю Изменения Свойства
Домашняя страница > Создание GUI С JFC/Swing > Пишущие Слушатели События

Как Записать Слушателю Изменения Свойства

События изменения свойства имеют место всякий раз, когда значение связанного свойства изменяется для боба ⠀” компонент, который соответствует спецификации JavaBeans™. Можно узнать больше о бобах от следа JavaBeans Учебного руководства по Java. Все компоненты Swing являются также бобами.

К свойству JavaBeans получают доступ через добираемому и методы набора. Например, JComponent имеет шрифт свойства, который доступен через getFont и setFont методы.

Помимо того, чтобы получать и методов набора, связанное свойство запускает событие изменения свойства, когда его значение изменяется. Для получения дополнительной информации см. Связанную страницу Свойств в следе JavaBeans.

Некоторые сценарии, которые обычно требуют слушателей изменения свойства, включают:

Хотя они - часть более общего использования для слушателей изменения свойства, можно зарегистрировать слушателя изменения свойства на связанном свойстве любого компонента, который соответствует спецификации JavaBeans.

Можно зарегистрировать слушателя изменения свойства двумя способами. Первое использование метод addPropertyChangeListener(PropertyChangeListener). Когда Вы регистрируете слушателя этот путь, Вы уведомляетесь относительно каждого изменения к каждому связанному свойству для того объекта. В propertyChange метод, можно получить имя свойства, которое изменило использование PropertyChangeEvent getPropertyName метод, как в следующем фрагменте кода:

KeyboardFocusManager focusManager =
   KeyboardFocusManager.getCurrentKeyboardFocusManager();
focusManager.addPropertyChangeListener(new FocusManagerListener());
...
public FocusManagerListener implements PropertyChangeListener {
    public void propertyChange(PropertyChangeEvent e) {
        String propertyName = e.getPropertyName();
        if ("focusOwner".equals(propertyName) {
            ...
        } else if ("focusedWindow".equals(propertyName) {
            ...
        }
    }
    ...
}

Второй способ зарегистрировать свойство изменяется, слушатель использует метод addPropertyChangeListener(String, PropertyChangeListener). String параметром является имя свойства. Используя эти средства метода, что Вы только получаете уведомление, когда изменение происходит с тем определенным свойством. Так, например, если Вы зарегистрировали слушателя изменения свойства как это:

aComponent.addPropertyChangeListener("font",
                                     new FontListener());

FontListener только получает уведомление, когда значение свойства шрифта компонента изменяется. Это не получает уведомление, когда значение изменяется для transferHandler, непрозрачного, граница, или любое другое свойство.

Следующие шоу в качестве примера, как зарегистрировать свойство, изменяют слушателя на свойстве значения отформатированного текстового поля, используя версию с двумя параметрами addPropertyChangeListener:

//...where initialization occurs:
double amount;
JFormattedTextField amountField;
...
amountField.addPropertyChangeListener("value",
                                      new FormattedTextFieldListener());
...
class FormattedTextFieldListener implements PropertyChangeListener {
    public void propertyChanged(PropertyChangeEvent e) {
        Object source = e.getSource();
        if (source == amountField) {
            amount = ((Number)amountField.getValue()).doubleValue();
            ...
        }
        ...//re-compute payment and update field...
    }
}

API Слушателя Изменения Свойства

Регистрация PropertyChangeListener

Метод Цель
addPropertyChangeListener (PropertyChangeListener) Добавьте слушателя изменения свойства списка слушателя.
addPropertyChangeListener (Строка, PropertyChangeListener) Добавьте слушателя изменения свойства для определенного свойства. Слушателя вызывают только, когда есть изменение к указанному свойству.

Интерфейс PropertyChangeListener

Поскольку PropertyChangeListener имеет только один метод, у него нет никакого соответствующего адаптера class.

Метод Цель
propertyChange (PropertyChangeEvent) Вызванный, когда слушаемый боб изменяет связанное свойство.

Класс PropertyChangeEvent

Метод Цель
Возразите getNewValue ()
Возразите getOldValue ()
Возвратите новое, или старое, значение свойства, соответственно.
Представьте getPropertyName в виде строки () Возвратите имя свойства, которое было изменено.
освободите setPropagationId () Получите или установите Значение идентификатора распространения. Зарезервированный для будущего использования.

Примеры, что Слушатели Изменения Свойства Использования

Следующая таблица приводит примеры то изменение свойства использования слушатели.

Пример Где Описано Примечания
FormattedTextFieldDemo Как Использовать Отформатированные Текстовые поля Слушатель изменения свойства регистрируется на нескольких отформатированных текстовых полях, чтобы отследить изменения к свойству значения.
DialogDemo Как Сделать Диалоговые окна CustomDialog class регистрирует слушателя изменения свойства на области опции, чтобы слушать значение и inputValue свойства.
FileChooserDemo2 Как Использовать Селекторов Файла ImagePreview class регистрирует слушателя изменения свойства на селекторе файла, чтобы слушать directoryChanged и selectedFileChanged свойства.
TrackFocusDemo Как Использовать Подсистему Фокуса Слушатель изменения свойства регистрируется на менеджере по клавиатурному фокусу, чтобы отследить изменения к focusOwner свойству.

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Как Записать Слушателю Колеса мыши
Следующая страница: Как Записать Табличному Слушателю Модели