Обработка событий элементов интерфейса пользователя в языке Java — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Обработка событий элементов интерфейса пользователя в языке Java

2017-12-21 242
Обработка событий элементов интерфейса пользователя в языке Java 0.00 из 5.00 0 оценок
Заказать работу

 

Пользователь, располагая прикладным окном, оперирует для связи с программой интерфейсными элементами, каждый из которых способен генерировать событие. К таким элементам относится уже используемая нами мышь, но также кнопки, флажки, списки с выбором, пункты меню, полосы прокрутки, клавиши клавиатуры, текстовые редакторы и прикладное окно, генерирующее события при изменении его размера, при его закрытии и др.

Эти элементы представляются в программе в виде объектов соответствующих классов, в которые встроен механизм делегирования, предполагающий применение определённых интерфейсов и предопределённых функций. Причём, ради простоты, не требуется наследовать класс события, соответствующего элементу, поскольку он запретил бы наследовать более значимый класс, определяющий основное функционирование объекта. Но обязательно надо наследовать некоторый интерфейс, предписанный для данного элемента.

Пакет java.awt.event содержит следующие классы событий интерфейсных объектов, которые определяют множество констант, свойств и функций, используемых с соответствующими элементами: ActionEvent, AdjustimentEvent, ComponentEvent, FocusEvent, InputEvent, ItemEvent, KeyEvent, MouseEvent, TextEvent и WindowEvent.

Приёмники событий (которые также называют блоками прослушивания) должны наследовать интерфейсы соответствующих интерфейсных объектов. Определены следующие интерфейсы прослушивания событий: ActionListener, AdjustmentListener, ComponentListener, ContainerListener, FocusListener, ItemListener, KeyListener, MouseListener, MouseMotionListener, TextListener и WindowListener. Эти интерфейсы включают предопределённые обработчики событий. Например, интерфейс ActionListener включает предопределённый обработчик actionPerformed(), а интерфейс WindowListener включает предопределённые обработчики windowClosed(), windowClosing(), windowOpened() и др.

Так же как при уведомлении обозреватели подписывают на наблюдаемый объект с помощью функции addObserver(), так и в случае интерфейсных элементов приёмники (блоки прослушивания) подписывают на источник с помощью специальной функции класса источника, которая имеет вид:

 

public void аdd Type Listener (Type Listener tL);

где Type - тип источника события.

 

При наступлении события источника выполняется предопределённый обработчик подписавшегося приёмника.

 

 

Обработка событий мыши на языке Java, используя интерфейс MouseListener

 

Из предыдущего раздела явствует, что для подписки приёмника прослушивания на событие мыши необходимо в качестве типа источника события Type в общей записи

 

public void аdd Type Listener (Type Listener tL);

 

взять Mouse. Полученная функция

 

public void аdd Mouse Listener (Mouse Listener tL);

 

применена в примере 9.5.2.

 

Пример 9.5.2. Обработка событий мыши на Java, используя интерфейс MouseListener.

///////////////

// Java и J# Вариант 2 (Вариант 1 смотрите в примере 10.4.3)

import java.awt.*;

import java.awt.event.*;

 

// Класс прикладного окна

public class MainClass extends Frame implements MouseListener

{

// Предопределённые обработчики интерфейса MouseListener

public void mouseClicked (MouseEvent mE){}

public void mouseEntered (MouseEvent mE){}

public void mouseExited (MouseEvent mE){}

public void mouseReleased (MouseEvent mE){}

// Выполнить предопределённый обработчик mousePressed мыши

Public void mousePressed (MouseEvent mE)

{

System.out.println ("Mouse: x= " + mE.getX ()

+ " y= " + mE.getY());

}

public static void main () // Главная функция

{

MainClass mC= new MainClass ();

mC.setSize (new Dimension (400, 200));

mC.setTitle ("Hello");

mC.show ();

mC.addMouseListener(mC);

}

}

 

///////////////

// Java и J# Вариант 3

import java.awt.*;

import java.awt.event.*;

 

// Класс прикладного окна

public class MainClass extends Frame implements MouseListener

{

public MainClass ()

{

this.setSize (new Dimension (400, 200));

this.setTitle ("Hello");

this.addMouseListener (this);

}

 

// Предопределённые обработчики интерфейса MouseListener мыши

public void mouseClicked (MouseEvent mE){}

public void mouseEntered (MouseEvent mE){}

public void mouseExited (MouseEvent mE){}

public void mouseReleased (MouseEvent mE){}

 

// Выполнить предопределённый обработчик mousePressed мыши


Поделиться с друзьями:

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.