Java如何使用BoxLayout布置swing组件?

此示例演示了如何使用BoxLayout布局管理器按行或列顺序排列组件。除了使用BoxLayout管理器外,我们还可以使用Box组件作为内容窗格,以获得与使用BoxLayout管理器相同的效果。

package org.nhooo.example.swing;

import javax.swing.*;

public class BoxLayoutDemo extends JFrame {
    public BoxLayoutDemo() {
        initialize();
    }

    private void initialize() {
        setSize(400, 400);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        // 使用BoxLayout.X_AXIS将内容窗格的布局设置为BoxLayout
        //将组件从左到右排列。如果我们要安排
        // 组件自上而下我们可以使用BoxLayout.Y_AXIS;
        setLayout(new BoxLayout(getContentPane(), BoxLayout.X_AXIS));

        JLabel label = new JLabel("Username : ");
        JTextField textField = new JTextField();

        JLabel password = new JLabel("Password :");
        JPasswordField passwordField = new JPasswordField();

        getContentPane().add(label);
        getContentPane().add(textField);

        getContentPane().add(password);
        getContentPane().add(passwordField);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new BoxLayoutDemo().setVisible(true);
            }
        });
    }
}