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

Введение в Слушателей События

Если Вы считали какой-либо компонент страницы с практическими рекомендациями, Вы, вероятно, уже знаете основы слушателей события.

Давайте смотреть на один из самых простых возможных примеров обработки событий. Это вызывают Устройством звуковой сигнализации, и это обладает кнопкой, которая подает звуковой сигнал, когда Вы щелкаете по этому.

Нажмите кнопку Launch, чтобы работать, Устройство звуковой сигнализации, используя Сеть Java™ Запускаются (загрузите JDK 6 или позже). Альтернативно, чтобы скомпилировать и выполнить пример самостоятельно, консультируйтесь, пример индексируют.

Запускает пример Устройства звуковой сигнализации
Щелкнуть Я Кнопка Устройства звуковой сигнализации

Можно найти всю программу в Beeper.java. Вот код, который реализует обработку событий для кнопки:

public class Beeper ... implements ActionListener {
    ...
    //where initialization occurs:
        button.addActionListener(this);
    ...
    public void actionPerformed(ActionEvent e) {
        ...//Make a beep sound...
    }
}

Beeper class реализует ActionListener интерфейс, который содержит один метод: actionPerformed. С тех пор Beeper реализации ActionListener, a Beeper объект может зарегистрироваться как слушатель для событий действия тот огонь кнопок. Однажды Beeper был зарегистрирован, используя Button addActionListener метод, Beeper's actionPerformed метод вызывают каждый раз, когда кнопка нажимается.

Более сложный Пример

Модель событий, которую Вы видели в его самом простом в предыдущем примере, довольно мощна и гибка. Любое число объектов слушателя события может прислушаться ко всем видам событий от любого числа объектов источника события. Например, программа могла бы создать одного слушателя на источник события. Или у программы мог бы быть единственный слушатель для всех событий из всех источников. У программы может даже быть больше чем один слушатель для единственного вида события из единственного источника события.

Источник события с многократными слушателями

Многократные слушатели могут зарегистрироваться, чтобы быть уведомленными относительно событий определенного типа из определенного источника. Кроме того, тот же самый слушатель может слушать уведомления от различных объектов.

Каждое событие представляется объектом, который дает информацию о событии и идентифицирует источник события. Источники событий часто являются компонентами или моделями, но другие виды объектов могут также быть источниками событий.

Всякий раз, когда Вы хотите обнаружить события от определенного компонента, сначала проверьте раздел с практическими рекомендациями на тот компонент. Список компонента разделы с практическими рекомендациями здесь. Разделы с практическими рекомендациями дают примеры обработки событий, о которых Вы, наиболее вероятно, будете заботиться. В том, Как Использовать Цветных Селекторов, например, Вы найдете, что пример записи слушателю изменения отслеживает, когда цвет изменится в цветном селекторе.

Следующий пример демонстрирует, что слушатели события могут быть зарегистрированы на многократных объектах и что то же самое событие может быть отправлено многократным слушателям. Пример содержит два источника событий (JButton экземпляры) и два слушателя события. Один из слушателей события (экземпляр class вызывают MultiListener) прислушивается к событиям от обеих кнопок. Когда это получает событие, это добавляет "команду действия события" (который устанавливается в текст на метке кнопки) к главной текстовой области. Второй слушатель события (экземпляр class вызывают Eavesdropper) прислушивается к событиям на только одной из кнопок. Когда это получает событие, это добавляет команду действия к нижней текстовой области.

MultiListener и ответы Соглядатая на кнопки

Попробуйте это: 
  1. Нажмите кнопку Launch, чтобы работать, MultiListener, используя Сеть Java™ Запускаются (загрузите JDK 6 или позже). Альтернативно, чтобы скомпилировать и выполнить пример самостоятельно, консультируйтесь, пример индексируют.Запускает пример MultiListener
  2. Нажмите кнопку Blah blah blah. Только MultiListener объект регистрируется, чтобы слушать эту кнопку.
  3. Щелкните по Вам, не говорят! кнопка. Оба MultiListener возразите и Eavesdropper объект регистрируется, чтобы слушать эту кнопку.

Можно найти всю программу в MultiListener.java. Вот код, который реализует обработку событий для кнопки:

public class MultiListener ... implements ActionListener {
    ...
    //where initialization occurs:
        button1.addActionListener(this);
        button2.addActionListener(this);

        button2.addActionListener(new Eavesdropper(bottomTextArea));
    }

    public void actionPerformed(ActionEvent e) {
        topTextArea.append(e.getActionCommand() + newline);
    }
}

class Eavesdropper implements ActionListener {
    ...
    public void actionPerformed(ActionEvent e) {
        myTextArea.append(e.getActionCommand() + newline);
    }
}

В вышеупомянутом коде, обоих MultiListener и Eavesdropper реализуйте ActionListener интерфейс и регистр как слушатели действия, использующие JButton addActionListener метод. Реализации обоих классов actionPerformed метод подобен: они просто добавляют команду действия события к текстовой области.


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

Предыдущая страница: Пишущие Слушатели События
Следующая страница: Общая информация о Пишущих Слушателях События