Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

FlowLayout. FlowLayout(int align, int hgap, int vgap);. Между компонентами можно оставить промежутки (gap) по горизонтали hgap и вертикали vgap




FlowLayout

Наиболее просто поступает менеджер размещения FlowLayout. Он укладывает в контейнер один компонент за другим слева направо как кирпичи, переходя от верхних рядов к нижним. При изменении размера контейнера " кирпичи" перестраиваются.

Компоненты поступают в том порядке, в каком они заданы в методах 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);

 

Пример 4. 4 (FlowLayout).

package simpleframe;

import java. awt. FlowLayout;

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 class SimpleFrame {

  

public static void main(String[] args) {

      

JFrame f= new FlowTest(" Менеджер FlowLayout" );

  f. setLocation(400, 200);

  f. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);       

}

}

BorderLayout

Менеджер размещения BorderLayout делит контейнер на  пять неравных областей, полностью заполняя каждую область одним компонентом. Области получили географические названия — NORTH, SOUTH, WEST, EAST и CENTER.

Метод add() в случае применения BorderLayout имеет два аргумента: ссылку на компонент comp и область region, в которую помещается компонент — одну из перечисленных ранее констант: add(Component comp, String region).

 

Обычный метод add(Component comp) с одним аргументом помещает компонент в область CENTER.

Ссылку на компонент, помещенный в определенную область, можно получить методом getLayoutComponent(Object region);

 

Пример 4. 5. (BorderLayout).

class BorderTest extends JFrame{

BorderTest(String s){

super(s);

add(new JButton(" North" ), BorderLayout. NORTH);

  add(new JButton(" South" ), BorderLayout. SOUTH);

add(new JButton(" West" ), BorderLayout. WEST);

add(new JButton(" East" ), BorderLayout. EAST);

JTextField tf=new JTextField(" Центр" );

tf. setBackground(Color. yellow);

tf. setForeground(Color. RED);

tf. setHorizontalAlignment(JTextField. CENTER);

add(tf);

setSize(300, 200);

setVisible(true);

setVisible(true);

}

 

public static void main(String[] args){

JFrame f= new BorderTest(" Менеджер BorderLayout" );

f. setDefaultCloseOperation(EXIT_ON_CLOSE);

}

}

Менеджер размещения BorderLayout может показаться неудобным: он располагает не больше пяти компонентов, последние растекаются по всей области, области имеют странный вид. Но дело в том, что в каждую область можно поместить не компонент, а панель, и размещать компоненты на ней, как сделано в примере 4. 6 и показано на рис. На панелях Panel и JPanel менеджер размещения по умолчанию — FlowLayout.

Пример 4. 6. (BorderLayout)

 

 import java. awt. *;

import javax. swing. *;

 

class BorderPanelTest extends JFrame{  

 

BorderPanelTest(String s){

super(s);

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...