Проблемы макетов на разных компонентах?

Я пишу графическую программу, в которой используется макет потока для установки компонентов. Я знаю, что этот макет начинается с центра по умолчанию и идет слева направо, как это

введите описание изображения здесь

Я также знаю структуру всех других макетов, но я хочу сделать такой интерфейс

введите описание изображения здесь

Все компоненты в центре. Но использование макета на этом изображении пустое. Я только хочу узнать, как мы можем сделать это в таком типе макета, как границы, обтекание и т. Д.
Код:

     public class Main {

    public static void main(String[] args) {

        JFrame obj = new JFrame();
        obj.setTitle("My Frame");
        obj.setSize(800, 600);
        obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        obj.setLocationRelativeTo(null);

        JLabel l1 = new JLabel("Enter Name");
        l1.setFont(new Font("Tahoma", Font.PLAIN, 21));

        JTextField t1 = new JTextField(20);
        t1.setFont(new Font("Tahoma", Font.PLAIN, 16));

        JButton b1 = new JButton("Submit");

        obj.setLayout(new FlowLayout());
        obj.add(l1);
        obj.add(t1);
        obj.add(b1);

        obj.setVisible(true);

    }

}

1 ответ

Решение

Вы могли бы использовать BoxLayout, Что-то вроде:

box.add(label);
box.add(textField);
box.add(button);
box.add(Box.createVerticalGlue());

Возможно, вам придется поиграть со свойством setAlignmentX(...), чтобы компоненты могли быть центрированы по горизонтали.

Прочитайте раздел из руководства Swing о том, как использовать BoxLayout для получения дополнительной информации и примеров.

Или вы могли бы использовать GridBagLayout, В учебнике также есть раздел How to Use GridBagLayout,

Другие вопросы по тегам