В дизайне интерфейса необходимо размещать контейнер во многих компонентах. Java.awt определяет различные классы макета, каждый класс макета соответствует стратегии макета. Следующая категория макета:
• FlowLayout, размещенные компоненты по очереди.
• Boarderlayout, поместите компоненты на границу.
• Cardlayout, компоненты стека, такие как покерные карты, и каждый раз может отображать только один из компонентов.
• Gridlayout делит область отображения на равные сетки в соответствии с линиями и столбцами, а компоненты помещаются в эти сетки по очереди.
• Gridbaglayout делит область дисплея на многие небольшие единицы, и каждый компонент может занимать одно или несколько небольших единиц.
Среди них Gridbaglayout может выполнять прекрасный контроль положения, и самый сложный.
Каждый контейнер имеет диспетчер макетов, и он решает, как организовать компоненты в контейнере. Диспетчер макетов - это класс, который реализует интерфейс LayoutManager.
1. Flowlayout Mayout
Переточковая планировка состоит в том, чтобы распорядиться компонентами слева направо в соответствии с порядком добавления, а затем перенести в линию, чтобы продолжить слева направо после одной линии, а компоненты в каждой линии расположены в середине. Это самая легкая стратегия макета.
Flowlayout - это макет по умолчанию небольших приложений и панелей.
1.flowlayout (), генерируйте макет Flowlayout по умолчанию. По умолчанию компонент находится в середине, с 5 пикселями.
2. Flowlayout (int aligment), установите метод выравнивания каждого компонента. Выравнивание может быть доступно для flowlayout.left, flowlayout.center, flowlayout.richt.
3.flowlayout (int aligment, int horz, int vert), установите метод выравнивания и установите горизонтальное расстояние horz и вертикальное расстояние компонента, установите макет контейнера с помощью метода супер -классного контейнера. Например, код Setlayout (new FlowLayout ()) устанавливает макет FlowLayout для контейнера. Метод добавления компонента в контейнер добавлен (имя компонента).
2. Mayout Borderlayout (JWindow, Jframe, макет JDialog по умолчанию)
Стратегия макета Borderlayout состоит в том, чтобы просто разделить пространство в контейнере на пять районов восточного «восточного», запад «запад», юг «юг», север «север» и «центр». При присоединении к компоненту вы должны указать, какую область расположено, в которой расположен компонент. Поместите компонент в положение. Если вы хотите добавить несколько компонентов в определенном месте, вам сначала следует добавить компонент местоположения, чтобы разместить другой контейнер, а затем добавить контейнер в это положение.
Структурный метод макета Borderlayout:
(1) Borderlayout (), генерируйте макет Borderlayout по умолчанию. По умолчанию нет разрыва.
(2) Borderlayout (int horz, int vert), установите горизонтальный и вертикальный интервал между компонентами.
Метод настройки стратегии макета Borderlayout - SetLayout (new Borderlayout ()). Метод добавления компонента в контейнер добавлен (имя компонента, местоположение).
Борьба с пограничным балдом - это макет по умолчанию JWindow, JFrame, JDialog.
[Пример 11-5] Применение имеет пять ярлыков, которые размещаются в пяти районах восточного, западного, юга, северного и среднего и среднего, соответственно.
Импорт javax.swing.*; Окно "); // Создать объект контейнера с окном mw.setsize (250,200); контейнер con = mw.getContentPane (); con.setLayout (new BorderLayout ()); label1 = new Jlabel (" East Tag "); / / / / / / / / / / /e / По умолчанию осталось Qi Qi Label2 = new Jlabel ("South Tag", Jlabel.center); Новый Jlabel ("" Mid -Label ", Jlabel.center); .Add (Label4, "North");
3. Гридлейут макет
Гридлейная планировка состоит в том, чтобы разделить контейнер на форму сетки. Характеристики макета Gridlayout заключается в том, что позиционирование компонента является более точным. Поскольку каждая сетка в макете Gridlayout имеет одинаковую форму и размер, компоненты, которые необходимы для помещения в контейнер, также должны поддерживать одинаковый размер.
Конструктивный метод макета Gridlayout:
(1) Gridlayout (), генерируйте единую схему Gridlayout. По умолчанию нет разрыва.
(2) Gridlayout (int row, int color), установите макет Gridlayout с помощью строки и столбца.
(3) Gridlayout (int row, int color, int horz, int vert), установите количество строк и столбцов макета, горизонтальное и вертикальное расстояние компонента.
Макет Gridlayout основан на поведенческих показателях, когда количество компонентов чрезмерно, этот список автоматически увеличивается. приоритета (автоматически увеличивается в соответствии с компонентом). Каждая сетка макета Gridlayout должна быть заполнена в компоненте.
[Пример 11-6] Небольшие приложения сначала поместите несколько кнопок и нескольких ярлыков в JPanel, затем поместите JPanel в JScrollpane. чем фактические требования панели.
Импорт java.applet.*; Новое измерение (w, h); ++) {p.Add (new jlabel ()); ); (W+60, H+60); ();}} Класс Scrolpane ExcrollPane {public scrollpane (компонент P) {super (p); OW MyWindow; {MyWindow = new MyWindow (400, 350);}}
Градлейная макет требует, чтобы размер всех компонентов был последовательным, что может быть недостаточно красивым, чтобы использовать внешний вид интерфейса. Устранение - это объединить некоторые компоненты в контейнере, затем использовать этот контейнер в качестве компонента, а затем поместить его в сетку. Это контейнерное гнездование, упомянутое ранее. Например, контейнер A Использует макет Gridlayout для разделения контейнера на сетки; Контейнер B и C также могут быть установлены на макет Gridlayout, разделите себя на несколько сетей или также могут быть установлены на другие макеты. Таким образом, по внешнему виду размер каждого компонента отличается.
4. Cardlayout Mayout
Хотя контейнер с использованием макета CardLayout может вместить несколько компонентов, несколько компонентов имеют одинаковое пространство дисплея, и в определенный момент может отображаться только один компонент. Точно так же, как стопка покерных карт может отображать только верхний за раз, этот отображаемый компонент будет занимать все пространство контейнера. Шаги дизайна макета CardLayout следующие:
Сначала создайте объект Mayout CardLayout. Затем используйте метод setlayout (), чтобы установить макет для контейнера. Большинство, метод add () для вызова контейнера добавляет компонент в контейнер. Метод добавления компонента стратегии макета CardLayout:
Добавить (Код компонента, компонент);
Код компонента - это строка, которая дается отдельно и не имеет ничего общего с именем компонента.
Например, следующий код устанавливает макет CardLayout для контейнера JPanel:
Cardlayout mycard = new cardlayout ();
Есть два способа отображения компонента в методе, предоставленном классом CardLayout:
(1) Код в форме Show (имя контейнера, код компонента) и укажите дисплей компонента в контейнере. Например, следующий код указывает компонент контейнера P для отображения этого компонента:
mycard.show (p, k);
(2) Компонент отображается в порядке добавления контейнера в соответствии с компонентом.
первый (контейнер): например, код mycard.first (p);
Последний (контейнер): например, mycard.last (p);
Далее (контейнер): например, mycard.next (p);
Предыдущий (контейнер): mycard.previous (p);
[Пример 11-7] Небольшие приложения используют макет CardLayout. Окно имеет 4 кнопки, которые отвечают за отображение первого компонента P, последнего компонента, первого компонента текущего компонента и последнего компонента текущего компонента.
Импорт Java.Applet.*; (); Mycard; Void init () {setlayout (new Borderlayout ()); Mycard); ); (P2, «Первый», это); iftactioncommand (). (E.GetActionCommand (). Equals ("前一个")) Mycard.previous (p);
5. Метод макета и сетевых сетей
Схема воздуха состоит в том, чтобы установить макет контейнера в нулевую макет. Планировка воздуха использует метод setbounds (), чтобы установить размер самого компонента и положения в контейнере:
Setbounds (int x, int y, int width, int height)
Площадь, занятая компонентом, представляет собой прямоугольный параметр x, а Y - координата положения верхнего левого угла компонента в контейнере; Существует два шага для компонентов переселения воздуха: сначала используйте метод add () для добавления компонентов в контейнер для корпуса. Затем вызовите метод setBounds (), чтобы установить положение компонента в контейнере и размер самого компонента. Другие методы, связанные с компонентами:
1.GetSize ().
2. ЗАКРЫТИЕ ()
3.SetVgap (ing vgap)
4.sethgap (int hgap);