Контейнер Panel
Контейнер Panel – это невидимый компонент графического интерфейса, служащий для объединения нескольких других компонентов в один объект типа Panel.
Класс Panel очень прост, но важен. В нем всего два конструктора:
- Panel () – создает контейнер с менеджером размещения по умолчанию FlowLayoutJ
- Panel (LayoutManager layout) – создает контейнер с указанным менеджером размещения компонентов layout.
После создания контейнера в него добавляются компоненты унаследованным методом add ():
Panel p = new Panel(); p.add(comp1); p.add(comp2);
… и т. д. Размещает компоненты в контейнере его менеджер размещения, о чем мы поговорим в следующей главе.
Контейнер Panel используется очень часто. Он удобен для создания группы компонентов.
В листинге 10.4 три полосы прокрутки вместе с заголовком "Подберите цвет" и масштабными метками 0, 127 и 255 образуют естественную группу. Если мы захотим переместить ее в другое место окна, нам придется переносить каждый из семи компонентов, входящих в указанную группу. При этом придется следить за тем, чтобы их взаимное положение не изменилось. Вместо этого мы создали панель р и разместили на ней все семь элементов. Метод setBounds() каждого из рассматриваемых компонентов указывает в данном случае положение и размер компонента в системе координат панели р, а не окна Frame. В окно мы поместили сразу целую панель, а не ее отдельные компоненты.
Теперь для перемещения всей группы компонентов достаточно переместить панель, и находящиеся на ней объекты автоматически переместятся вместе с ней, не изменив своего взаимного положения.