Spec-Zone .ru
спецификации, руководства, описания, API
|
Если Вы считали какой-либо компонент страницы с практическими рекомендациями, Вы, вероятно, уже знаете основы слушателей события.
Давайте смотреть на один из самых простых возможных примеров обработки событий. Это вызывают Устройством звуковой сигнализации, и это обладает кнопкой, которая подает звуковой сигнал, когда Вы щелкаете по этому.
Нажмите кнопку Launch, чтобы работать, Устройство звуковой сигнализации, используя Сеть Java™ Запускаются (
Можно найти всю программу в 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
объект регистрируется, чтобы слушать эту кнопку.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
метод подобен: они просто добавляют команду действия события к текстовой области.