Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_02.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
278.09 Кб
Скачать

14. События

Событие (event) в пользовательском интерфейсе — это либо непосредственное действие пользователя (щелчок или движение мыши, нажатие клавиши), либо изменение состояния какого-либо компонента интерфейса (например, щелчок мыши может привести к нажатию кнопки). Источником события (event source) в Swing может быть любой компонент, будь то кнопка, надпись с текстом или диалоговое окно. Для того чтобы узнавать в своей программе о происходящих в компоненте событиях, нам необходимо сообщить компоненту о своей заинтересованности.

Сделать это можно, передав компоненту слушателя (listener) определенного события.

Слушатель — наблюдатель (разница только в названиях), которому компонент будет сообщать о происходящих в нем событиях. Каждому типу события соответствует свой слушатель. Так гораздо проще следить именно за теми событиями, что нас интересуют, а не за всеми подряд — код, обрабатывающий щелчки мыши, будет отделен от кода, ответственного за нажатия клавиш. Обязанности слушателей (то есть методы, которые в них должныбыть определены) описаны в соответствующих интерфейсах. Вы реализуете в своем классе нужный вам интерфейс слушателя, передаете его в интересующий вас компонент и спокойно ждете наступления события.

пример обработки событий

Краткое описание события

Методы слушателя

Источник события

Событие от клавиатуры. Описано в классе KeyEvent. Возникает, когда пользователь нажимает клавишу

keyPressed(KeyEvent),

keyReleased(KeyEvent),

keyTyped(KeyEvent)

Все компоненты

(наследники класса

java.awt.Component)

Нажатия и отпускания кнопок

мыши. Класс MouseEvent позволяет следить за состоянием кнопок мыши и контролировать

нахождение указателя мыши в

определенной области

mouseClicked(MouseEvent),

mouseEntered(MouseEvent),

mouseExited(MouseEvent),

mousePressed(MouseEvent),

mouseReleased(MouseEvent)

Все компоненты

Перемещение мыши. Класс

события тот же — MouseEvent,

но вот слушатель называется

по-другому MouseMotionListener1

mouseDragged(MouseEvent),

mouseMoved(MouseEvent)

Все компоненты

Все компоненты

Прокрутка колесика мыши.

Класс MouseWheelEvent

mouseWheelMoved(MouseWheelEvent)

Все компоненты

Передача фокуса ввода.

Класс FocusEvent

focusGained(FocusEvent),

focusLost(FocusEvent)

Все компоненты

Добавление или удаление

компонентов в контейнере.

Класс ContainerEvent

componentAdded(ContainerEvent),

componentRemoved(ContainerEvent)

Все контейнеры

(наследники класса

java.awt.Container)

Изменения состояния окна.

Класс Window/Event Позволяет

узнать о перемещении,

свертывании, закрытии окна и

т. д.

windowActivated(WindowEvent),

windowClosed(WindowEvent),

windowClosing(WindowEvent),

windowDeactivated(WindowEvent),

windowDeiconified(WindowEvent),

windowIconified(WindowEvent),

windowOpened(WindowEvent)

Окна (наследники

класса java.awt.

Window), например,

окна с рамкой

(JFrame) или

диалоговые окна

(JDialog

Новая моделъ обработки событий представляет собой, по существу, моделъ обратных вызовов (callback). При создании GUI-элемента ему сообщается, какой метод или методы он должен вызыватъ при возникновении в нем определенного события (нажатия кнопки, мыши и т.п.).  Моделъ обработки событий Java 1.1 базируется на концепции слушателя событий.   В интерфейсе слушателя событий может определятъся несколъко методов.По установленному соглашению, методам слушателей событий может бытъ передан один единственный аргумент, являющийся обьектом того события, которое соответствует данному слушателю. В этом обьекте должна содержатъся вся информация, необходимая программе для формирования реакции на данное событие. В таблице приведены определенные в пакете java.awt.event типы событий, соответствующие им слушатели, а также методы, определенные в каждом интерфейсе слушателя. 

Model-view-controller (MVC, «модель-представление-поведение», «модель-представление-контроллер», «модель-вид-контроллер») — схема использования нескольких шаблонов проектирования, с помощью которыхмодель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента таким образом, чтобы модификация одного из компонентов оказывала минимальное воздействие на остальные. 

Концепция MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента:

  • Модель (англ. Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.

  • Представлениевид (англ. View). Отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами.

  • Контроллер (англ. Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]