不同组件的布局问题?

时间:2015-08-17 18:15:58

标签: java swing jframe layout-manager

我正在编写一个gui程序,其中使用流程布局来设置组件。我知道这个布局从默认中心开始并像这样从左到右转向

enter image description here

我也知道所有其他布局的结构,但我想像这样制作一个gui。
enter image description here

中心的所有组件。但是该图片中的布局使用为空。我只想知道我们如何在这些类型的布局中做到这一点,如边框,流等。
代码:

     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 个答案:

答案 0 :(得分:1)

您可以使用BoxLayout。类似的东西:

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

您可能必须使用setAlignmentX(...)属性来允许组件水平居中。

阅读How to Use BoxLayout上Swing教程中的部分,了解更多信息和示例。

或者您可以使用GridBagLayout。本教程还有一个关于How to Use GridBagLayout的部分。