Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компоненты GDI.doc
Скачиваний:
5
Добавлен:
11.09.2019
Размер:
371.71 Кб
Скачать

Контейнер Panel

Контейнер Panel – это невидимый компонент графического интерфейса, служащий для объединения нескольких других компонентов в один объект типа Panel.

Класс Panel очень прост, но важен. В нем всего два конструктора:

  • Panel () – создает контейнер с менеджером размещения по умолчанию FlowLayoutJ

  • Panel (LayoutManager layout) – создает контейнер с указанным менеджером размещения компонентов layout.

После создания контейнера в него добавляются компоненты унаследованным методом add ():

Panel p = new Panel();

p.add(compl);

p.add(comp2);

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

Контейнер Panel используется очень часто. Он удобен для создания группы компонентов.

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

Контейнер ScrollPane

Контейнер ScrollPane может содержать только один компонент, но зато такой, который не помещается целиком в окне. Контейнер обеспечивает средства прокрутки для просмотра большого компонента. В контейнере можно установить полосы прокрутки либо постоянно, константой SCROLLBARS_ALWAYS , либо так, чтобы они появлялись только при необходимости (если компонент действительно не помещается в окно) константой SCROLLBARS_AS_NEEDED .

Если полосы прокрутки не установлены, это задает константа SCROLLBARS_NEVER , то перемещение компонента для просмотра нужно обеспечить из программы одним из методов setScrollPosition ().

В классе два конструктора:

  • ScrollPane () – создает контейнер, в котором полосы прокрутки появляются по необходимости;

  • ScrollPane(int scrollbars) – создает контейнер, в котором появление линеек прокрутки задается одной из трех указанных выше констант.

Крнструкторы создают контейнер размером 100x100 пикселов, в дальнейшем можно изменить размер унаследованным методом

setSizet int width, int height).

Ограничение, заключающееся в том, что scrollPane может содержать только один компонент, легко обходится. Всегда можно сделать этим единственным компонентом объект класса Panel, разместив на панели что угодно.

Среди методов класса интересны те, что позволяют прокручивать компонент В ScrollPane:

  • методы gethAdjustable() и getvAdjustable() возвращают положение линеек прокрутки в виде интерфейса Adjustable;

  • метод getscrollPosition() показывает координаты (х, у) точки компонента, находящейся в левом верхнем углу панели ScrollPane, в виде объекта класса Point;

  • метод setScrollPosition(Point р) или setScrollPosition(int х, int у) прокручивает компонент в позицию (х, у).

Контейнер Window

Контейнер window – это пустое окно, без внутренних элементов: рамки, строки заголовка, строки меню, полос прокрутки. Это просто прямоугольная область на экране. Окно типа window самостоятельно, не содержится ни в каком контейнере, его не надо заносить в контейнер методом add(). Однако оно не связано с оконным менеджером графической системы. Следовательно, нельзя изменить его размеры, переместить в другое место экрана. Поэтому оно может быть создано только каким-нибудь уже существующим окном, владельцем (owner) или родителем (parent) окна window. Когда окно-владелец убирается с экрана, вместе с ним убирается и порожденное окно. Владелец окна указывается В конструкторе:

  • window (Frame f) – создает окно, владелец которого – фрейм f;

  • window (window owner) – создает окно, владелец которого– уже имеющееся окно или подкласс класса window.

Созданное конструктором окно не выводится на экран автоматически. Его следует отобразить методом show (). Убрать окно с экрана можно методом hide (), а проверить, видно ли окно на экране – логическим методом isShowing().

Окно типа window возможно использовать для создания всплывающих окон предупреждения, сообщения, подсказки. Для создания диалоговых окон есть подкласс Dialog, всплывающих меню – класс popupMenu.

Видимое на экране окно выводится на передний план методом toFront() или, наоборот, помещается на задний план методом toBack().

Уничтожить окно, освободив занимаемые им ресурсы, можно методом dispose().

Менеджер размещения компонентов в окне по умолчанию – BorderLayout. Окно создает свой экземпляр класса Toolkit, который возможно получить методом getToolkit().

Кроме событий класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent , при изменении размеров окна, его перемещении или удалении с экрана, а также показа на экране происходит событие windowEvent.