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

Как Записать Слушателю Данных Списка

События данных списка имеют место, когда содержание изменчивого списка изменяется. Начиная с модели — не компонент — запускает эти события, необходимо зарегистрировать слушателя данных списка в модели списка. Если Вы явно не создали список с изменчивой моделью списка, то Ваш список является неизменным, и его модель не будет запускать эти события.


Отметьте: 

Модели поля комбинированного списка также запускают события данных списка. Однако, Вы обычно не должны знать о них, если Вы не создаете пользовательскую модель поля комбинированного списка.


Следующий пример демонстрирует события данных списка в изменчивом списке:

Вывод ListDataEventDemo, который демонстрирует события данных списка.

Попробуйте это: 
  1. Нажмите кнопку Launch, чтобы работать, ListDataEventDemo, используя Сеть Java™ Запускаются (загрузите JDK 6 или позже). Альтернативно, чтобы скомпилировать и выполнить пример самостоятельно, консультируйтесь, пример индексируют.Запускает пример ListDataEventDemo
  2. Введите от имени своего любимого лыжного курорта и нажмите кнопку Add. intervalAdded событие было запущено.
  3. Выберите несколько continguous элементов в списке и нажмите кнопку Delete. intervalRemoved событие было запущено.
  4. Выберите один элемент и переместите его вверх или вниз в списке с кнопками стрелки. Два contentsChanged события запускаются ⠀” один для элемента, который перемещался и один для элемента, который был перемещен.

Можно найти код демонстрационного примера в ListDataEventDemo.java. Вот код, который регистрирует слушателя данных списка на модели списка и реализует слушателя:

//...where member variables are declared...
private DefaultListModel listModel;
...
//Create and populate the list model
listModel = new DefaultListModel();
...
listModel.addListDataListener(new MyListDataListener());

class MyListDataListener implements ListDataListener {
    public void contentsChanged(ListDataEvent e) {
        log.append("contentsChanged: " + e.getIndex0() +
                   ", " + e.getIndex1() + newline);
    }
    public void intervalAdded(ListDataEvent e) {
        log.append("intervalAdded: " + e.getIndex0() +
                   ", " + e.getIndex1() + newline);
    }
    public void intervalRemoved(ListDataEvent e) {
        log.append("intervalRemoved: " + e.getIndex0() +
                   ", " + e.getIndex1() + newline);
    }
} 

API Слушателя Данных Списка

Интерфейс ListDataListener

ListDataListener не имеет никакого соответствующего адаптера class.

Метод Цель
intervalAdded (ListDataEvent) Вызванный, когда один или более элементов были добавлены к списку.
intervalRemoved (ListDataEvent) Вызванный, когда один или более элементов были удалены из списка.
contentsChanged (ListDataEvent) Вызванный, когда содержание одного или более элементов в списке изменилось.

API ListDataEvent

Метод Цель
Возразите getSource ()
(в java.util.EventObject)
Возвратите объект, который запустил событие.
интервал getIndex0 () Возвратите индексирование первого элемента, значение которого изменилось.
интервал getIndex1 () Возвратите индексирование последнего элемента, значение которого изменилось.
интервал getType () Возвратите тип события. Возможные значения: CONTENTS_CHANGED, INTERVAL_ADDED, или INTERVAL_REMOVED.

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

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

Пример Где Описано Примечания
ListDataEventDemo Этот раздел Отчеты все события данных списка, которые происходят в списке.

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

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