Менеджер FlowLayout
Наиболее просто поступает менеджер размещения FlowLayout. Он укладывает в контейнер один компонент за другим слева направо как кирпичи, переходя от верхних рядов к нижним. При изменении размера контейнера "кирпичи" перестраиваются, как показано на рис. 11.1. Компоненты поступают в том порядке, в каком они заданы в методах add ().
В каждом ряду компоненты могут прижиматься к левому краю, если в конструкторе аргумент align равен FlowLayout. LEFT, к правому краю, если этот аргумент FlowLayout. RIGHT, или собираться в середине ряда, если FlowLayout.CENTER.
Между компонентами можно оставить промежутки (gap) по горизонтали hgap и вертикали vgap. Это задается в конструкторе:
FlowLayout(int align, int hgap, int vgap)
Второй конструктор задает промежутки размером 5 пикселов:
FlowLayout(int align)
Третий конструктор определяет выравнивание по центру и промежутки 5 пикселов:
FlowLayout()
После формирования объекта эти параметры можно изменить методами:
setHgap(int hgap) setVgap(int vgap) setAlignment(int align)
В листинге 11.1 создаются кнопка Button, метка Label, кнопка выбора checkbox, раскрывающийся список choice, поле ввода TextField и все это размещается в контейнере Frame. Рис. 11.1 содержит вид этих компонентов при разных размерах контейнера.
Листинг 11.1. Менеджер размещения FlowLayout.
import j ava.awt.*; import j ava.awt.event.*; class FlowTest extends Frame{ FlowTest(String s) { super(s); setLayout (new FlowLayout (FlowLayout.LEFT, 10, 10)); add(new Button("Кнопка")); add(new Label("Метка")); add(new Checkbox("Выбор")); add(new Choice()); add(new TextFieldt"Справка", 10)); setSize(300, 100); setVisible(true); } public static void main(String[] args){ Frame f= new FlowTest(" Менеджер FlowLayout"); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ System.exit(0); } }); } }
Рис. 11.1. Размещение компонентов с помощью FlowLayout