□ окно развернулось — идентификатор 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 () при изменении его размеров и для остановки приложения при закрытии окна.

<p><strong>Событие <emphasis>ComponentEvent</emphasis></strong></p>

Данное событие происходит в компоненте по четырем причинам:

□ компонент перемещается — идентификатор 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 ().

<p><strong>Событие <emphasis>ContainerEvent</emphasis></strong></p>

Данное событие происходит по двум причинам:

□ в контейнер добавлен компонент — идентификатор component_added;

□ из контейнера удален компонент — идентификатор component_removed.

Этим причинам соответствуют методы интерфейса:

public interface ContainerListener extends EventListener{ public void componentAdded(ContainerEvent e); public void componentRemoved(ContainerEvent e);

}

Аргумент e предоставляет ссылку на компонент, чье добавление или удаление из контейнера вызвало событие, методом e.getChild( ) и ссылку на контейнер — источник события методом e. getContainer (). Обычно при наступлении данного события контейнер перемещает свои компоненты.

<p><strong>Ообытие <emphasis>FocusEvent</emphasis></strong></p>

Событие возникает в компоненте, когда он получает фокус ввода — идентификатор focus_gained — или теряет фокус — идентификатор FOCUS_LOST.

Соответствующий интерфейс:

public interface FocusListener extends EventListener{ public void focusGained(FocusEvent e); public void focusLost(FocusEvent e);

}

Обычно при потере фокуса компонент перечерчивается бледным цветом, для этого применяется метод brighter( ) класса Color, при получении фокуса становится ярче, что достигается применением метода darker (). Это приходится делать самостоятельно при создании своего компонента.

<p><strong>Событие <emphasis>ItemEvent</emphasis></strong></p>

Данное событие возникает при выборе или отказе от выбора элемента в списке 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 — произошел отказ от выбора.

В главе 10 мы уже видели примеры использования этого события.

<p><strong>Событие <emphasis>AdjustmentEvent</emphasis></strong></p>

Это событие возникает для полосы прокрутки 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.

Листинг 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);

Перейти на страницу:

Все книги серии В подлиннике

Похожие книги