Менеджер FlowLayout
Наиболее просто поступает менеджер размещения FlowLayout. Он укладывает в контейнер один компонент за другим слева направо как кирпичи, переходя от верхних рядов к нижним. При изменении размера контейнера "кирпичи" перестраиваются, как показано
на рис. 14.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);
В листинге 14.1 создаются кнопка JButton, метка JLabel, кнопка выбора JCheckBox, раскрывающийся список JComboBox, поле ввода JtextField и все это размещается в контейнере JFrame. Рисунок 14.1 содержит вид перечисленных компонентов при разных размерах контейнера.
Листинг 14.1. Менеджер размещения FlowLayout
import java.awt.*; import javax.swing.*;
class FlowTest extends JFrame{
FlowTest(String s){ super(s);
setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));
add(new JButton("Кнопка"));
add(new JLabel("Метка"));
add(new JCheckBox("Выбор"));
add(new JComboBox());
add(new JTextField("Ввод", 10));
setSize(300, 100);
setVisible(true);
}
public static void main(String[] args){
JFrame f= new FlowTest(" Менеджер FlowLayout"); f.setDefaultCloseOperation(EXIT ON CLOSE);
}
Рис. 14.1. Размещение компонентов с помощью FlowLayout