GUI - 在下一行获取内容

时间:2011-10-22 16:12:11

标签: java swing user-interface layout

我已经创建了一个GUI,并使用了FlowLayout

我有2个标签和一个按钮,它们位于同一条线上,但我希望按钮位于2个标签的单独行上。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:4)

有很多方法,其中大多数涉及制作嵌套布局(将一个布局放在另一个布局中)。这是一个例子。

Button/Label Layout

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

class ButtonLabelLayout {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JPanel gui = new JPanel(new BorderLayout());
                gui.setBorder(new TitledBorder("Border Layout"));

                JPanel labels = new JPanel();
                labels.setBorder(new TitledBorder("Flow Layout"));
                labels.add(new JLabel("Label 1"));
                labels.add(new JLabel("Label 2"));

                gui.add(labels, BorderLayout.NORTH);
                gui.add(new JButton("Button"), BorderLayout.SOUTH);

                JOptionPane.showMessageDialog(null, gui);
            }
        });
    }
}

有关嵌套布局的更全面示例,请参阅this answer