□ окно развернулось — идентификатор window_deiconified;
□ всякое изменение состояния окна — window_state_changed;
□ окно стало первым — window_first;
□ окно стало последним — window_last.
Соответствующий интерфейс содержит семь методов:
public interface WindowListener extends EventListener { public void windowOpened(WindowEvent e); public void windowClosing(WindowEvent e); public void windowClosed(WindowEvent e); public void windowIconified(WindowEvent e); public void windowDeiconified(WindowEvent e); public void windowActivated(WindowEvent e); public void windowDeactivated(WindowEvent e);
}
Аргумент e этих методов дает ссылку типа Window на окно-источник методом
e.getWindow().
Чаще всего эти события используются для перерисовки окна методом repaint () при изменении его размеров и для остановки приложения при закрытии окна.
Событие
Данное событие происходит в компоненте по четырем причинам:
□ компонент перемещается — идентификатор component_moved;
□ компонент меняет размер — идентификатор component_resized;
□ компонент убран с экрана — идентификатор component_hidden;
□ компонент появился на экране — идентификатор ccmponent_shcwn.
Соответствующий интерфейс содержит описания четырех методов:
public interface ComponentListener extends EventListener{ public void componentMoved(ComponentEvent e); public void componentResized(ComponentEvent e); public void componentHidden(ComponentEvent e); public void componentShown(ComponentEvent e);
}
Аргумент e методов этого интерфейса предоставляет ссылку на компонент-источник
события методом e.getComponent ().
Событие
Данное событие происходит по двум причинам:
□ в контейнер добавлен компонент — идентификатор component_added;
□ из контейнера удален компонент — идентификатор component_removed.
Этим причинам соответствуют методы интерфейса:
public interface ContainerListener extends EventListener{ public void componentAdded(ContainerEvent e); public void componentRemoved(ContainerEvent e);
}
Аргумент e предоставляет ссылку на компонент, чье добавление или удаление из контейнера вызвало событие, методом e.getChild( ) и ссылку на контейнер — источник события методом e. getContainer (). Обычно при наступлении данного события контейнер перемещает свои компоненты.
Ообытие
Событие возникает в компоненте, когда он получает фокус ввода — идентификатор focus_gained — или теряет фокус — идентификатор FOCUS_LOST.
Соответствующий интерфейс:
public interface FocusListener extends EventListener{ public void focusGained(FocusEvent e); public void focusLost(FocusEvent e);
}
Обычно при потере фокуса компонент перечерчивается бледным цветом, для этого применяется метод brighter( ) класса Color, при получении фокуса становится ярче, что достигается применением метода darker (). Это приходится делать самостоятельно при создании своего компонента.
Событие
Данное событие возникает при выборе или отказе от выбора элемента в списке List, Choice, JComboBox, или кнопки выбора Checkbox, а также в кнопках Swing, наследующих от класса AbstractButton, и отмечается идентификатором ITEM_STATE_CHANGED.
Соответствующий интерфейс очень прост:
public interface ItemListener extends EventListener{ void itemStateChanged(ItemEvent e);
}
Аргумент e предоставляет ссылку на источник методом e.getItemSelectable(), ссылку на выбранный пункт методом e.getItem( ) в виде Object.
Метод e.getStateChange () позволяет уточнить, что произошло: значение selected указывает на то, что элемент был выбран, значение deselected — произошел отказ от выбора.
В
Событие
Это событие возникает для полосы прокрутки Scrollbar или JScrollBar при всяком изменении ее бегунка и отмечается идентификатором adjustment_value_changed.
Соответствующий интерфейс описывает один метод:
public interface AdjustmentListener extends EventListener{ public void adjustmentValueChanged(AdjustmentEvent e);
}
Аргумент e этого метода предоставляет ссылку на источник события методом e. getAdj ustable (), текущее значение положения движка полосы прокрутки методом e.getValue ( ) и способ изменения его значения методом e.getAdjustmentType(), возвращающим следующие значения:
□ unit_increment — увеличение на одну единицу;
□ unit_decrement — уменьшение на одну единицу;
□ block_increment — увеличение на один блок;
□ block_decrement — уменьшение на один блок;
□ track — процесс передвижения бегунка полосы прокрутки.
"Оживим" программу создания цвета, приведенную в листинге 10.4, добавив необходимые действия. Результат этого представлен в листинге 15.6.
import java.awt.*; import java.awt.event.*;
class ScrollTest1 extends Frame{ private Scrollbar
sbRed = new Scrollbar(Scrollbar.VERTICAL, 127, 16, 0, 271), sbGreen = new Scrollbar(Scrollbar.VERTICAL, 127, 16, 0, 271), sbBlue = new Scrollbar(Scrollbar.VERTICAL, 127, 16, 0, 271);