Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Менеджеры компоновки

Читайте также:
  1. Виды РТК и их компоновки
  2. Менеджеры компоновок

Менеджеры расположения необходимы для расположения компонентов GUI в контейнере для последующего представления их на экране монитора. Они обес­печивают основные возможности расположения, и использовать их гораздо проще, нежели задавать точные координаты и размеры каждого компонента GUI. Это по­зволяет программисту определять внешний вид программы только «в целом», а де­тали оформления передать на усмотрение менеджеров расположения.

 

В предыдущем приложении мы использовали менеджер расположения FlowLayout.

Класс FlowLayout — наследник класса Object — реализует интерфейс LayoutManager, который определяет методы, используемые менеджером расположения для расстановки и задания размеров компонентов GUI в контейнере.

Менеджер FlowLayout — самый простой из менеджеров расположения. Компоненты GUI располагаются этим менеджером в контейнере последовательно слева направо, в порядке их добавления в контейнер. По достижении края контейнера компоненты начинают располагаться со следующей строки. В классе FlowLayout возможно выравнивание компонентов GUI по левому и правому краям или по центру.

Менеджер расположения BorderLayout (менеджер расположения по умолча­нию) настраивает компоненты в пяти областях: NORTH, SOUTH, EAST, WEST и CENTER (север, юг, восток, запад и центр; северу соответствует верхняя часть контейнера). Класс BorderLayout является наследником класса Object и реализует интерфейс LayoutManager2 (подинтерфейс LayoutManager, добавляющий не­сколько методов для улучшения процесса расположения).

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

Рассмотрим пример использования компоновщика BorderLayout:

 

// BorderLayoutDemo.java

 

1 import java.awt.*;

2 import javax.swing.*;

3 public class BorderLayoutDemo extends JFrame {

4 private JButton buttons[];

5 private String names[] = { "Скрыть North",

"Скрыть South","Скрыть East", "Скрыть West",

"Скрыть Center" };

6 private BorderLayout layout;

 

7 public BorderLayoutDemo (){

8 super("Тестирование BorderLayout");

9 layout = new BorderLayout(5, 5);

10 Container container = getContentPane();

11 container.setLayout(layout);

12 buttons = new JButton[ names.length ];

13 for(int count =0;count<names.length;count++){

14 buttons[count]=new JButton(names[count]);

15 }

16 container.add(buttons[ 0 ], BorderLayout.NORTH);

17 container.add(buttons[ 1 ], BorderLayout.SOUTH);

18 container.add(buttons[ 2 ], BorderLayout.EAST);

19 container.add(buttons[ 3 ], BorderLayout.WEST);

20 container.add(buttons[ 4 ], BorderLayout.CENTER);

21 setSize(320, 200);

22 setVisible(true);

23 }

24 public static void main(String args[]){

25 BorderLayoutDemo application=new BorderLayoutDemo();

26 application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

27 }

28 }

 

Рис 18.2 Диалоговое окно

 

В строке 9 конструктор определяет менеджер расположения BorderLayout. Аргументы задают число пикселов, разделяющих компоненты по горизонтали – 5 пикселов и вертикали - 5 пикселов. В строке 9 используется метод setLayout для задания менеджера расположения layout. С помощью метода add кнопки добавляются в соответствующие области окна контейнера (строки 16-20).

Менеджер расположения GridLayout разбивает контейнер на таблицу (сетку) таким образом, что компоненты помещаются в определенную строку и определен­ный столбец. Класс GridLayout прямой наследник класса Object и реализует ин­терфейс LayoutManager. Каждый объект Component в GridLayout имеет одинако­вую ширину и высоту. Компоненты добавляются в GridLayout, начиная с верхней левой ячейки таблицы и заполняются, двигаясь слева направо, пока не заполнится строка. После этого процесс продолжается в направлении слева направо на сле­дующей строке и т.д.

Рассмотрим пример использования компоновщика GridLayout:

 

// PanelDemo.java

 

1 import java.awt.*;

2 import javax.swing.*;

3 public class PanelDemo extends JFrame{

4 private JPanel buttonPanel;

5 private JButton buttons[];

 

6 public PanelDemo () {

7 super("Пример использованияе панелей и

компоновщиков");

 

8 Container container = getContentPane();

9 buttons = new JButton[ 5 ];

10 buttonPanel=new JPanel();

11 buttonPanel.setLayout(new GridLayout(1,

buttons.length));

12 for(int count=0;count<buttons.length;count++){

13 buttons[count]=new JButton ("кнопка"+(count+1));

14 buttonPanel.add(buttons[count]);

15 }

16 container.add(buttonPanel, BorderLayout.SOUTH);

17 setSize(425,150);

18 setVisible(true);

19 }

 

20 public static void main(String args[]){

21 PanelDemo application= new PanelDemo();

22 application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

23 }

24 }

 

 

Рис 18.3 Диалоговое окно

В данном визуальном приложении используются два компоновщика: GridLayout - для расположения кнопок на панели buttonPanel (строка 11)и BorderLayout – для размещения самой панели в контейнере окна в области SOUTH (строка 16).

GridLayout использует два параметра - 1 и buttons.length=5, т.е. 1 строка и в ней 5 ячеек, что мы и видим на рис 18.3.

 

(!) Замечание: Каждый контейнер может иметь одновременно лишь один менеджер рас­положения. Различные контейнеры в одной программе могут иметь раз­личные менеджеры расположения.

 


Дата добавления: 2015-10-29; просмотров: 129 | Нарушение авторских прав


Читайте в этой же книге: Жизненный цикл программы на Java | Управляющие структуры и операции в Java | Создание программы. | Классы String и String Buffer | Основные свойства объектно-ориентированного подхода | Создание собственных пакетов. | Класс Graphics | Интерфейс Java2D | Обработка событий мыши | Классы адаптеры |
<== предыдущая страница | следующая страница ==>
Графический интерфейс пользователя.| Слушатели (listeners) полей и кнопок.

mybiblioteka.su - 2015-2024 год. (0.01 сек.)