Java如何使用FlowLayout布置回转组件?

在此示例中,您可以看到如何使用FlowLayout管理器排列秋千组件。该管理器根据容器组件的方向(例如ComponentOrientation.LEFT_TO_RIGHT和)按方向流排列组件ComponentOrientation.RIGHT_TO_LEFT。

package org.nhooo.example.swing;

import javax.swing.*;
import java.awt.*;

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

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

        // 创建一个新的FlowLayout管理器并将组件排列设置为
        //左对齐。另一种安排是FlowLayout.CENTER,
        // FlowLayout.RIGHT,FlowLayout.LEADING和FlowLayout.TRAILING。
        FlowLayout layoutManager = new FlowLayout(FlowLayout.RIGHT);

        // 设置放置在组件中的组件之间的水平和垂直间隙
        // 内容窗格为10像素。
        layoutManager.setHgap(10);
        layoutManager.setVgap(10);
        setLayout(layoutManager);

        // 从右到左设置容器的组件方向。 
        // 这将第一个组件放置在
        // 容器。
        getContentPane().setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

        // 在框架面板中添加一些文本字段。
        JTextField[][] textFields = new JTextField[3][3];
        for (int i = 0; i < textFields.length; i++) {
            for (int j = 0; j < textFields[i].length; j++) {
                textFields[i][j] = new JTextField(5);
                textFields[i][j].setText(String.valueOf(((i + 1) * (j + 1))));

                getContentPane().add(textFields[i][j]);
            }
        }        
    }

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