Иллюстрированный самоучитель по Java

События. Класс Container.

Событие ComponentEvent происходит при перемещении компонента, изменении его размера, удалении с экрана и появлении на экране.

Событие FocusEvent возникает при получении или потере фокуса.

Событие KeyEvent проявляется при каждом нажатии и отпускании клавиши, если компонент имеет фокус ввода.

Событие MouseEvent происходит при манипуляциях мыши на компоненте.

Каждый компонент перед выводом на экран помещается в контейнер – подкласс класса container. Познакомимся с этим классом.

Класс Container

Класс container – прямой подкласс класса component, и наследует все его методы. Кроме них основу класса составляют методы добавления компонентов в контейнер:

  • add (Component comp) – компонент comp добавляется в конец контейнера;
  • add (Component comp, int index) – компонент comp добавляется в позицию index в контейнере, если index == -1, то компонент добавляется в конец контейнера;
  • add (Component comp, object constraints) – менеджеру размещения контейнера даются указания объектом constraints;
  • add (String name. Component comp) – компонент получает имя name.

Два метода удаляют компоненты из контейнера:

  • remove (Component comp) – удаляет компонент с именем comp;
  • remove (int index) – удаляет компонент с индексом index в контейнере.

Один из компонентов в контейнере получает фокус ввода (input focus), на него надравляется ввод с клавиатуры. Фокус можно переносить с одного компонента на другой клавишами Tab и SHIFT + Tab. Компонент может запросить фокус методом requestFocus () и передать фокус следующему компоненту методом transferFocus(). Компонент может проверить, имеет ли он фокус, своим логическим методом hasFocus(). Это методы класса Component.

Для облегчения размещения компонентов в контейнере определяется менеджер размещения (layout manager) – объект, реализующий интерфейс LayoutManager или его подынтерфейс LayoutManager2. Каждый менеджер размещает компоненты в каком-то своем порядке: один менеджер расставляет компоненты в таблицу, другой норовит растащить компоненты по сторонам, третий просто располагает их один за другим, как слова в тексте. Менеджер определяет смысл слов "добавить в конец контейнера" и "добавить в позицию index".

В контейнере в любой момент времени может быть установлен только один менеджер размещения. В каждом контейнере есть свой менеджер по умолчанию, установка другого менеджера производится методом:

setLayout(LayoutManager manager)

Менеджеры размещения мы рассмотрим подробно в следующей главе. В данной главе мы будем размещать компоненты вручную, отключив менеджер по умолчанию методом setLayout (null).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.