В AWT события разделены на низкоуровневые(low-level) и семантические(semantic). Семантические события описывают действия пользователя, например, щелчок на кнопочке; следовательно, событие ActionEvent является семантическим. Низкоуровневые события обеспечивают возможность таких действий.
Если пользователь щелкнул на кнопке, значит, он нажал кнопку мыши, возможно, переместил курсор по экрану и отпустил кнопку мыши(причем курсор мыши должен находиться в пределах кнопки).Семантические события могут быть также сгенерированы путем нажатия клавиш, например для перемещения по кнопкам с помощью клавиши <Tab>. Аналогично, действие с полосой прокрутки относится к семантическим событиям, в то время как перетаскивание объекта с помощью мыши относится к низкоуровневым.
Из классов пакета java.awt.event, описывающих семантические события, наиболее часто используются следующие.
- ActionEvent — щелчок на кнопке, выбор пункта меню, выбор пункта в списке, нажатие клавиши <Enter>.
- AdjustmentEvent — перемещение ползунка на полосе прокрутки.
- ItemEvent — выбор положения переключателя опции или пункта в списке
- KeyEvent — нажатие или отпускание клавиши
- MouseEvent — нажатие и отпускание кнопки мыши, перемещение курсора мыши, перетаскивание курсора, т.е. его перемещение при нажатой кнопке.
- MouseWheelEvent — вращение колесика мыши
- FocusEvent — получение или потеря фокуса ввода
- WindowEvent — изменения состояния окна
Прослушиваются эти события с помощью следующих интерфейсов:
- ActionListener
- AdjustmentListener
- FocusListener
- ItemListener
- KeyListener
- MouseListener
- MouseMotionListener
- MouseWheelListener
- WindowListener
- WindowFocusListener
- WindowStateListener
Некоторые из интерфейсов слушателей AWT, а именно те, у которых более одного метода, сопровождаются классом адаптера, реализующего все его методы как пустые и ничего не делающие. (Другие интерфейсы имеют лишь по одному методу, так что никакой выгоды от класса адаптера для этих интерфейсов нет.) Ниже перечислены наиболее часто используемые классы адаптеров.
- FocusAdapter
- KeyAdapter
- MouseAdapter
- MouseMotionAdapter
- WindowAdapter