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

Менеджер CardLayout

Менеджер размещения cardLayout своеобразен – он показывает в контейнере только один, первый (first), компонент. Остальные компоненты лежат под первым в определенном порядке как игральные карты в колоде. Их расположение определяется порядком, в котором написаны методы add (). Следующий компонент можно показать методом next (Container с), предыдущий – методом previous (Container с), Последний– методом last (Container с), первый – методом first (Container с). Аргумент этих методов – ссылка на контейнер, в который помещены компоненты, обычно this.

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

  • СardLayout () – не отделяет компонент от границ контейнера;
  • CardLayout (int hgap, int vgap) – задает горизонтальные hgap и вертикальные vgap поля.

Менеджер CardLayout позволяет организовать и произвольный доступ к компонентам. Метод add () для менеджера CardLayout имеет своеобразный вид:

add(Component comp, Object constraints)

Здесь аргумент constraints должен иметь тип string и содержать имя компонента. Нужный компонент с именем name можно показать методом:

show(Container parent, String name)

В листинге 11.5 менеджер размещения c1 работает с панелью р, помещенной в "центр" контейнера Frame. Панель р указывается как аргумент parent в методах next () и show (). На "север" контейнера Frame отправлена панель р2 с меткой и раскрывающимся списком ch. Рис. 11.5 демонстрирует результат работы программы.

Листинг 11.5. Менеджер CardLayout.

import java.awt.*;
import java.awt.event.*;
class CardTest extends Frame{ CardTest(String s){
super(s);
Panel p = new Panel();
CardLayout cl = new CardLayout();
p.setLayout(cl);
p.add(new Button("Русская страница"),"page1");
p.add(new Button("English page"), "page2");
p.add(new Button("Deutsche Seite"), "page3");
add(p);
cl.next(p);
cl.show(p, "pagel");
Panel p2 = new Panel();
p2.add(new Label("Выберите язык:"));
Choice ch = new Choice();
ch.add("Русский");
ch.add("Английский");
ch.add("Немецкий");'
p2.add(ch);
add(p2, BorderLayout.NORTH);
setSize(400, 300);
setvisible(true); }
public static void main(String[] args){
Frame f= new CardTest{" Менеджер CardLayout");
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
}
}

Иллюстрированный самоучитель по Java › Размещение компонентов › Менеджер CardLayout
Рис. 11.5. Менеджер размещения CardLayout

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