Spec-Zone .ru
спецификации, руководства, описания, API
|
События изменения свойства имеют место всякий раз, когда значение связанного свойства изменяется для боба â компонент, который соответствует спецификации JavaBeans™. Можно узнать больше о бобах от следа JavaBeans Учебного руководства по Java. Все компоненты Swing являются также бобами.
К свойству JavaBeans получают доступ через добираемому и методы набора. Например, JComponent
имеет шрифт свойства, который доступен через getFont
и setFont
методы.
Помимо того, чтобы получать и методов набора, связанное свойство запускает событие изменения свойства, когда его значение изменяется. Для получения дополнительной информации см. Связанную страницу Свойств в следе JavaBeans.
Некоторые сценарии, которые обычно требуют слушателей изменения свойства, включают:
FormattedTextFieldDemo
в том, Как Использовать Отформатированные Текстовые поля для примера этого.DialogDemo
в том, Как Сделать Диалоговые окна для примера регистрации слушателя изменения свойства на области опции, чтобы слушать изменения к свойству значения. Можно также проверить FileChooserDemo2
в том, Как Использовать Селекторов Файла для примера того, как зарегистрировать слушателя изменения свойства, чтобы слушать изменения к directoryChanged и selectedFileChanged свойствам.TrackFocusDemo
и DragPictureDemo
в том, Как Использовать Подсистему Фокуса для примеров этого.Хотя они - часть более общего использования для слушателей изменения свойства, можно зарегистрировать слушателя изменения свойства на связанном свойстве любого компонента, который соответствует спецификации 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... } }
Регистрация PropertyChangeListener
Метод | Цель |
---|---|
addPropertyChangeListener (PropertyChangeListener) | Добавьте слушателя изменения свойства списка слушателя. |
|
Добавьте слушателя изменения свойства для определенного свойства. Слушателя вызывают только, когда есть изменение к указанному свойству. |
Интерфейс PropertyChangeListener
Поскольку PropertyChangeListener
имеет только один метод, у него нет никакого соответствующего адаптера class.
Метод | Цель |
---|---|
|
Вызванный, когда слушаемый боб изменяет связанное свойство. |
Метод | Цель |
---|---|
|
Возвратите новое, или старое, значение свойства, соответственно. |
|
Возвратите имя свойства, которое было изменено. |
|
Получите или установите Значение идентификатора распространения. Зарезервированный для будущего использования. |
Следующая таблица приводит примеры то изменение свойства использования слушатели.
Пример | Где Описано | Примечания |
---|---|---|
FormattedTextFieldDemo |
|
Слушатель изменения свойства регистрируется на нескольких отформатированных текстовых полях, чтобы отследить изменения к свойству значения. |
DialogDemo |
Как Сделать Диалоговые окна | CustomDialog class регистрирует слушателя изменения свойства на области опции, чтобы слушать значение и inputValue свойства. |
FileChooserDemo2 |
Как Использовать Селекторов Файла | ImagePreview class регистрирует слушателя изменения свойства на селекторе файла, чтобы слушать directoryChanged и selectedFileChanged свойства. |
TrackFocusDemo |
Как Использовать Подсистему Фокуса | Слушатель изменения свойства регистрируется на менеджере по клавиатурному фокусу, чтобы отследить изменения к focusOwner свойству. |