Spec-Zone .ru
спецификации, руководства, описания, API
|
Компонентный слушатель является интерфейсом слушателя для того, чтобы получить компонентные события. Компонент является объектом, имеющим графическое изображение, которое может быть выведено на экран на экране, и это может взаимодействовать с пользователем. Некоторыми из примеров компонентов являются кнопки, флажки, и полосы прокрутки типичного графического интерфейса пользователя.
class, который интересуется обработкой компонентного события или реализует этот интерфейс и все методы, которые это содержит, или расширяет абстрактный ComponentAdapter class, переопределяющий только методы интереса. Объект слушателя, создаваемый из того, что class тогда регистрируется в компоненте, используя addComponentListener метод компонента. Когда размер компонента, расположение, или изменения видимости, соответствующий метод в объекте слушателя вызывается, и ComponentEvent передают к этому.
Одно или более компонентных событий запускаются a Component
объект сразу после компонента скрывается, делается видимый, перемещался, или изменял размеры.
Скрытые от компонента и показанные компонентом события имеют место только как результат звонков a Component
's setVisible
метод. Например, окно могло бы быть миниатюризировано в значок (представленный в виде значка) без скрытого от компонента запускаемого события.
Чтобы записать простую Компонентную программу слушателя, следуйте за шагами, упомянутыми ниже:
public class ComponentEventDemo ... implements ComponentListener
.... label.addComponentListener(this); ..... checkbox.addComponentListener(this); .... panel.addComponentListener(this); ... frame.addComponentListener(this);
public void componentHidden(ComponentEvent e) { displayMessage(e.getComponent().getClass().getName() + " --- Hidden"); } public void componentMoved(ComponentEvent e) { displayMessage(e.getComponent().getClass().getName() + " --- Moved"); } public void componentResized(ComponentEvent e) { displayMessage(e.getComponent().getClass().getName() + " --- Resized "); } public void componentShown(ComponentEvent e) { displayMessage(e.getComponent().getClass().getName() + " --- Shown"); }
Следующий пример демонстрирует компонентные события. Окно содержит панель, у которой есть метка и флажок. Флажок управляет, видима ли метка. Текстовая область выводит на экран сообщение каждый раз окно, панель, метка, или флажок запускает компонентное событие.
Можно найти код демонстрационного примера в ComponentEventDemo.java
. Вот только код, связанный с обработкой компонентных событий:
public class ComponentEventDemo ... implements ComponentListener { static JFrame frame; JLabel label; ... public ComponentEventDemo() { ... JPanel panel = new JPanel(new BorderLayout()); label = new JLabel("This is a label", JLabel.CENTER); label.addComponentListener(this); panel.add(label, BorderLayout.CENTER); JCheckBox checkbox = new JCheckBox("Label visible", true); checkbox.addComponentListener(this); panel.add(checkbox, BorderLayout.PAGE_END); panel.addComponentListener(this); ... frame.addComponentListener(this); } ... public void componentHidden(ComponentEvent e) { displayMessage(e.getComponent().getClass().getName() + " --- Hidden"); } public void componentMoved(ComponentEvent e) { displayMessage(e.getComponent().getClass().getName() + " --- Moved"); } public void componentResized(ComponentEvent e) { displayMessage(e.getComponent().getClass().getName() + " --- Resized "); } public void componentShown(ComponentEvent e) { displayMessage(e.getComponent().getClass().getName() + " --- Shown"); } public static void main(String[] args) { ... //Create and set up the window. frame = new JFrame("ComponentEventDemo"); ... JComponent newContentPane = new ComponentEventDemo(); frame.setContentPane(newContentPane); ... } }
Все эти методы находятся также в адаптере class, ComponentAdapter
.
Метод | Цель |
---|---|
|
Вызванный после слушаемого компонент скрывается как результат setVisible вызываемый метод. |
|
Вызванный после слушаемого компонентные перемещения, относительно его контейнера. Например, если окно перемещается, окно запускает перемещенное в компонент событие, но компоненты, которые это содержит, не делают. |
|
Вызванный после слушаемого размер компонента (прямоугольные границы) изменения. |
|
Вызванный после слушаемого компонент становится видимым как результат setVisible вызываемый метод. |
Метод | Цель |
---|---|
|
Возвращает компонент, который запустил событие. Можно использовать это вместо getSource метод. |
Пример | Где Описано | Примечания |
---|---|---|
ComponentEventDemo |
Этот раздел | Отчеты все компонентные события, которые происходят на нескольких компонентах, чтобы демонстрировать обстоятельства, при которых запускаются компонентные события. |