1 Обработка событий Событие – объект специального класса,

  • Размер: 525.5 Кб
  • Количество слайдов: 27

Описание презентации 1 Обработка событий Событие – объект специального класса, по слайдам

1 Обработка событий Событие – объект специального класса, описывающий изменение состояния объекта источника. Классы для обработки1 Обработка событий Событие – объект специального класса, описывающий изменение состояния объекта источника. Классы для обработки событий находятся в пакете java. awt. event

2 Обработка событий Классы событий Event. Object  AWTEvent Action. Event Adjustment. Event Component. Event Item.2 Обработка событий Классы событий Event. Object AWTEvent Action. Event Adjustment. Event Component. Event Item. Event Text. Event Container. Event Focus. Event Input. Event Paint. Event Window. Event Key. Event Mouse. Event

3 Обработка событий Классы событий Методы класса Event. Object: - Object get. Source() – ссылка на3 Обработка событий Классы событий Методы класса Event. Object: — Object get. Source() – ссылка на объект-источник события — String to. String() – текстовое описание события

4 Обработка событий Источники событий Источник Событие Когда возникает JButton Action. Event Нажата кнопка JCheck. Box4 Обработка событий Источники событий Источник Событие Когда возникает JButton Action. Event Нажата кнопка JCheck. Box Item. Event Сброс / установка флажка JRadio. Button Item. Event Сброс / установка флажка JCombo. Box Action. Event Item. Event Выбор элемента списка Изменение состояния элемента JList. Selection Event Изменение состояния элемента JMenu. Item Action. Event Item. Event Изменилось сост-е пункта меню То же для пункта с меткой

5 Обработка событий Источники событий Источник Событие Когда возникает JScrollbar Adjustment. Event Манипуляции с полосами прокрутки5 Обработка событий Источники событий Источник Событие Когда возникает JScrollbar Adjustment. Event Манипуляции с полосами прокрутки JText. Field JText. Area Text. Event Ввод символов JFrame JWindow Jdialog Window. Event Любые действия с окном (открыть / закрыть, свернуть / развернуть и т. п. ) Все органы управления Focus. Event Компонент получает или теряет фокус ввода Все контейнеры Container. Event Компонент добавляется или удаляется из контейнера

6 Обработка событий Уровни событий Высокоуровневые: все вышеперечисленные. Низкоуровневые: Key. Event, Mouse. Event (move) - low6 Обработка событий Уровни событий Высокоуровневые: все вышеперечисленные. Низкоуровневые: Key. Event, Mouse. Event (move) — low Mouse. Event (click) – low Action. Event — high

7 Обработка событий Интерфейсы - слушатели Для каждого типа событий существует свой интерфейс- слушатель: Action. Event7 Обработка событий Интерфейсы — слушатели Для каждого типа событий существует свой интерфейс- слушатель: Action. Event – Action. Listener Item. Event – Item. Listener Window. Event – Window. Listener и т. д. … В интерфейсе-слушателе описаны методы, обрабатывающие события данного класса.

8 Обработка событий Блоки прослушивания Блок прослушивания – класс, реализующий интерфейс-слушатель (реализующий все его методы). 8 Обработка событий Блоки прослушивания Блок прослушивания – класс, реализующий интерфейс-слушатель (реализующий все его методы). Для обработки события необходимо: 1. Создать блок прослушивания 2. Связать блок прослушивания с источником события

9 Обработка событий Блоки прослушивания Чтобы связаться с блоком прослушивания, классы-источники события должны получить ссылку на9 Обработка событий Блоки прослушивания Чтобы связаться с блоком прослушивания, классы-источники события должны получить ссылку на экземпляр блока прослушивания (класса-обработчика события) – зарегистрировать блок прослушивания: public void add. XXXListener(XXXListener obj) где XXX – это имя события, obj – ссылка на экземпляр класса-обработчика события. Методы, которые регистрируют блок прослушивания, обеспечиваются генерирующим событие источником.

10 Обработка событий Блоки прослушивания: унивещание Источник события Интерфейс- слушатель Блок прослушивания implements add. XXXListener(XXXListener obj)10 Обработка событий Блоки прослушивания: унивещание Источник события Интерфейс- слушатель Блок прослушивания implements add. XXXListener(XXXListener obj)

11 Обработка событий Источник события Блок прослушивания 1 add. XXXListener(XXXListener obj) Блоки прослушивания:  мультивещание Блок11 Обработка событий Источник события Блок прослушивания 1 add. XXXListener(XXXListener obj) Блоки прослушивания: мультивещание Блок прослушивания 2 Блок прослушивания 3 add. XXXListener(XXXListener obj)

12 Обработка событий Источник события Блоки прослушивания: несколько источников Блок прослушивания add. XXXListener(XXXListener obj) Источник события12 Обработка событий Источник события Блоки прослушивания: несколько источников Блок прослушивания add. XXXListener(XXXListener obj) Источник события add. XXXListener(XXXListener obj)

13 Обработка событий С помощью отдельного класса class Text. Move implements Action. Listener {  private13 Обработка событий С помощью отдельного класса class Text. Move implements Action. Listener { private JText. Field jtf; Text. Move(JText. Field jtf) { this. jtf = jtf; } public void action. Performed(Action. Event obj) { jtf. set. Text(«Button pressed»); } }

14 Обработка событий С помощью отдельного класса class My. Notebook extends JFrame {public static void main(String14 Обработка событий С помощью отдельного класса class My. Notebook extends JFrame {public static void main(String args[ ]) {JFrame jf = new JFrame(“Обработка события Action. Event»); Container cp = jf. get. Content. Pane(); jf. set. Layout(new Flow. Layout()); JButton jb = new JButton(«OK»); JText. Field jtf = new JText. Field(20); cp. add(jb); cp. add(jtf); jb. add. Action. Listener(new Text. Move(jtf)); jf. set. Visible(true); } }

15 Обработка событий С помощью отдельного класса 15 Обработка событий С помощью отдельного класса

16 Обработка событий Внутри класса-источника class My. Notebook extends JFrame implements Action. Listener {private JText. Field16 Обработка событий Внутри класса-источника class My. Notebook extends JFrame implements Action. Listener {private JText. Field jtf; public static void main(String args[ ]) {JFrame jf = new JFrame(“Обработка события Action. Event»); Container cp = jf. get. Content. Pane(); jf. set. Layout(new Flow. Layout()); JButton jb = new JButton(«OK»); JText. Field jtf = new JText. Field(20);

17 Обработка событий Внутри класса-источника  cp. add(jb); cp. add(jtf); jb. add. Action. Listener(this); jf. set.17 Обработка событий Внутри класса-источника cp. add(jb); cp. add(jtf); jb. add. Action. Listener(this); jf. set. Visible(true); } public void action. Performed(Action. Event obj) { jtf. set. Text(«Button pressed»); } }

18 Обработка событий С помощью вложенного класса class My. Notebook extends JFrame {private JText. Field jtf;18 Обработка событий С помощью вложенного класса class My. Notebook extends JFrame {private JText. Field jtf; public static void main(String args[ ]) {JFrame jf = new JFrame(“Обработка события Action. Event»); Container cp = jf. get. Content. Pane(); jf. set. Layout(new Flow. Layout()); JButton jb = new JButton(«OK»); JText. Field jtf = new JText. Field(20);

19 Обработка событий С помощью вложенного класса  cp. add(jb); cp. add(jtf); jb. add. Action. Listener(new19 Обработка событий С помощью вложенного класса cp. add(jb); cp. add(jtf); jb. add. Action. Listener(new Text. Move()); jf. set. Visible(true); } class Text. Move implements Action. Listener {public void action. Performed(Action. Event obj) { jtf. set. Text(«Button pressed»); } }

20 Обработка событий С помощью анонимного вложенного класса jb. add. Action. Listener(new Action. Listener() { public20 Обработка событий С помощью анонимного вложенного класса jb. add. Action. Listener(new Action. Listener() { public void action. Performed(Action. Event obj) { jtf. set. Text(«Button pressed»); } } );

21 Обработка событий Методы интерфейса Action. Listener void action. Performed(Action. Event obj) Методы интерфейса Adjustment. Listener21 Обработка событий Методы интерфейса Action. Listener void action. Performed(Action. Event obj) Методы интерфейса Adjustment. Listener void adjustment. Value. Changed(Adjustment. Event obj)

22 Обработка событий Методы интерфейса Component. Listener void Component. Resized(Component. Event obj) void Component. Moved(Component. Event22 Обработка событий Методы интерфейса Component. Listener void Component. Resized(Component. Event obj) void Component. Moved(Component. Event obj) void Component. Shown(Component. Event obj) void Component. Hidden(Component. Event obj) Методы интерфейса Container. Listener void component. Added(Container. Event obj) void component. Removed(Container. Event obj)

23 Обработка событий Методы интерфейса Focus. Listener void focus. Gained(Focus. Event obj) void focus. Lost(Focus. Event23 Обработка событий Методы интерфейса Focus. Listener void focus. Gained(Focus. Event obj) void focus. Lost(Focus. Event obj) Методы интерфейса Item. Listener void Item. State. Changed(Item. Event obj) Методы интерфейса Key. Listener public void key. Typed(Key. Event obj); public void key. Pressed(Key. Event obj); public void key. Released(Key. Event obj);

24 Обработка событий Методы интерфейса Mouse. Listener public void mouse. Clicked(Mouse. Event obj); public void mouse.24 Обработка событий Методы интерфейса Mouse. Listener public void mouse. Clicked(Mouse. Event obj); public void mouse. Pressed(Mouse. Event obj); public void mouse. Released(Mouse. Event obj); public void mouse. Entered(Mouse. Event obj); public void mouse. Exited(Mouse. Event obj); Методы интерфейса Mouse. Motion. Listener public void mouse. Dragged(Mouse. Event obj); public void mouse. Moved(Mouse. Event obj);

25 Обработка событий Методы интерфейса Text. Listener void text. Value. Changed(Text. Event obj) Методы интерфейса Window.25 Обработка событий Методы интерфейса Text. Listener void text. Value. Changed(Text. Event obj) Методы интерфейса Window. Listener public void window. Opened(Window. Event obj); public void window. Closing(Window. Event obj); public void window. Activated(Window. Event obj); public void window. Deactivated(Window. Event obj); public void window. Iconified(Window. Event obj); public void window. Deiconified(Window. Event obj);

26 Обработка событий Классы-адаптеры Для реализации интерфейса-слушателя необходимо определить все его методы. Если необходимо обрабатывать в26 Обработка событий Классы-адаптеры Для реализации интерфейса-слушателя необходимо определить все его методы. Если необходимо обрабатывать в программе только некоторые из событий, обработка которых предусматривается конкретным интерфейсом-слушателем, а все прочие игнорировать, то можно воспользоваться специальным классами, которые называются классами-адаптерами. Классы- адаптеры обеспечивают пустую реализацию всех методов интерфейса, что дает возможность наследовать класс- обработчик события от класса-адаптера и реализовывать в нем не все методы интерфейса, а лишь те которые необходимы.

27 Обработка событий Классы-адаптеры Список классов-адаптеров: - Component. Adapter - Container. Adapter - Focus. Adapter -27 Обработка событий Классы-адаптеры Список классов-адаптеров: — Component. Adapter — Container. Adapter — Focus. Adapter — Key. Adapter — Mouse. Motion. Adapter — Window. Adapter