swing
Управление макетами
Поиск…
Пограничный макет
import static java.awt.BorderLayout.*;
import javax.swing.*;
import java.awt.BorderLayout;
JPanel root = new JPanel(new BorderLayout());
root.add(new JButton("East"), EAST);
root.add(new JButton("West"), WEST);
root.add(new JButton("North"), NORTH);
root.add(new JButton("South"), SOUTH);
root.add(new JButton("Center"), CENTER);
JFrame frame = new JFrame();
frame.setContentPane(root);
frame.pack();
frame.setVisible(true);
Пограничный макет - один из простейших менеджеров макетов. Способ использования диспетчера компоновки - установить диспетчера JPanel
.
Слоты макета границы следуют следующим правилам:
- Север и Юг: предпочтительная высота
- Восток и Запад: предпочтительная ширина
- Центр: максимальное оставшееся пространство
В слотах BorderLayout
также могут быть пустыми. Менеджер компоновки автоматически компенсирует любые пустые места, при необходимости изменяя размер.
Вот как выглядит этот пример:
Схема потока
import javax.swing.*;
import java.awt.FlowLayout;
public class FlowExample {
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
panel.add(new JButton("One"));
panel.add(new JButton("Two"));
panel.add(new JButton("Three"));
panel.add(new JButton("Four"));
panel.add(new JButton("Five"));
JFrame frame = new JFrame();
frame.setContentPane(Panel);
frame.pack();
frame.setVisible(true);
}
});
}
}
Планирование потока - это самый простой менеджер компоновки, который предлагает Swing. Схема потока пытается поместить все на одну строку, и если макет переполняет ширину, он будет обертывать линию. Заказ указан в заказе, который вы добавляете в свою панель.
Скриншоты:
Макет сетки
GridLayout
позволяет GridLayout
компоненты в виде сетки.
Вы передаете количество строк и столбцов, которые должны иметь сетку для конструктора GridLayout
, например, new GridLayout(3, 2)
создаст GridLayout
с тремя строками и двумя столбцами.
При добавлении компонентов в контейнер с помощью GridLayout
компоненты будут добавляться по строкам слева направо:
import javax.swing.*;
import java.awt.GridLayout;
public class Example {
public static void main(String[] args){
SwingUtilities.invokeLater(Example::createAndShowJFrame);
}
private static void createAndShowJFrame(){
JFrame jFrame = new JFrame("Grid Layout Example");
// Create layout and add buttons to show restraints
JPanel jPanel = new JPanel(new GridLayout(2, 2));
jPanel.add(new JButton("x=0, y=0"));
jPanel.add(new JButton("x=1, y=0"));
jPanel.add(new JButton("x=0, y=1"));
jPanel.add(new JButton("x=1, y-1"));
jFrame.setContentPane(jPanel);
jFrame.pack();
jFrame.setLocationRelativeTo(null);
jFrame.setVisible(true);
}
}
Это создает и показывает JFrame
который выглядит так:
Более подробное описание доступно: GridLayout