-
В двух предыдущих главах мы написали много программ, создающих интерфейсы, но, собственно, интерфейса, т. е. взаимодействия с пользователем, эти программы не обеспечивают. Можно щелкать по кнопке на экране, она будет "вдавливаться" в плоскость экрана, но больше ничего не будет происходить.
-
Это простое событие означает, что надо выполнить какое-то действие. При этом неважно, что вызвало событие: щелчок мыши, нажатие клавиши или что-то другое. | В классе ActionEvent есть два полезных метода:
-
Событие MouseEvent возникает в компоненте по любой из семи причин: | нажатие кнопки мыши – идентификатор MOUSE_PRESSED; | отпускание кнопки мыши – идентификатор MOUSE_RELEASED; | щелчок кнопкой мыши – идентификатор MOUSE_CLICKED (нажатие и отпускание не различаются);
-
Классы-адаптеры представляют собой пустую реализацию интерфейсов-слушателей, имеющих более одного метода. Их имена составляются из имени события и слова Adapter. Например, для действий с мышью есть два класса-адаптера.
-
Событие KeyEvent происходит в компоненте по любой из трех причин: | нажата клавиша – идентификатор KEY_PRESSED; | отпущена клавиша – идентификатор KEY_RELEASED; | введен символ – идентификатор KEYJTYPED.
-
Событие windowEvent может произойти по семи причинам: | окно открылось – идентификатор WINDOW_OPENED; | окно закрылось – идентификатор WINDOW_CLOSED; | попытка закрытия окна – идентификатор WINDOW_CLOSING; | окно получило фокус – идентификатор WINDOW_ACTIVATED;
-
Данное событие происходит в компоненте по четырем причинам: | компонент перемещается – идентификатор COMPONENT_MOVED; | компонент меняет размер – идентификатор COMPONENT_RESIZED; | компонент убран с экрана – идентификатор COMPONENT_HIDDEN;
-
Событие возникает в компоненте, когда он получает фокус ввода – идентификатор FOCUS_GAINED, или теряет фокус – идентификатор FOCUS_LOST. | Соответствующий интерфейс: | public interface FocusListener extends EventListener{ | public void focusGainedtFocusEvent e); | public void focusLost(FocusEvent e);
-
Это событие возникает для полосы прокрутки Scrollbar при всяком изменении ее бегунка и отмечается идентификатором ADJUSTMENT_VALUE_CHANGED. | Соответствующий интерфейс описывает один метод: | public interface AdjustmentListener extends EventListener{ | public void adjustmentValueChanged(AdjustmentEvent e);
-
В начале этой главы, в листингах 12.1-12.3, мы привели пример класса TextMove, слушающего сразу два компонента: поле ввода tf типа TextFieid и кнопку b типа Button. | Чаще встречается обратная ситуация – несколько слушателей следят за одним компонентом.
-
Если вам понадобится обработать просто действие мыши, не важно, нажатие это, перемещение или еще что-нибудь, то придется включать эту обработку во все семь методов двух классов-слушателей событий мыши. | Эту работу можно облегчить, выполнив обработку не в слушателе, а на более ранней стадии.
-
Вы можете создать собственное событие и определить источник и условия его возникновения. | В листинге 12.6 приведен пример создания события MyEvent, любезно предоставленный Вячеславом Педаком. | Событие MyEvent говорит о начале работы программы (START) и окончании ее работы (STOP).