Поиск…


Пограничный макет

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



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow