此示例演示了如何使用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);
            }
        });
    }
}