GridBagLayout问题

时间:2014-01-28 00:55:12

标签: java swing layout jtextarea gridbaglayout

我无法让GridBagLayout工作。

这是我想要的结果(左上角)和我得到的结果(中心)

的图片

enter image description here

我希望在同一行上有一个文本字段后跟一个添加和删除按钮,然后在左上角显示多行。

我对GridBagLayout没有太多经验,而且开始变得非常令人沮丧。这只是我GUI的一小部分。 GridBagLayout是我想要使用的布局。如何让3个组件块在Y轴上对齐而不是继续添加到X轴?

    file1_tf = new JTextField(20);
    file1_tf.setEditable(false);
    file_select_panel = new JPanel(new GridBagLayout());
    GridBagConstraints gbc = new GridBagConstraints();

    gbc.gridx = 0;
    gbc.gridy = 0;
    file_select_panel.add(file1_tf);
    gbc.gridx = 1;
    gbc.gridy = 0;
    file_select_panel.add(add_f1_button);
    gbc.gridx = 2;
    gbc.gridy = 0;
    file_select_panel.add(rem_f1_button);

    gbc.gridx = 0;
    gbc.gridy = 1;
    file_select_panel.add(file3_tf);
    gbc.gridx = 1;
    gbc.gridy = 1;
    file_select_panel.add(add_f3_button);
    gbc.gridx = 2;
    gbc.gridy = 1;
    file_select_panel.add(rem_f3_button);

1 个答案:

答案 0 :(得分:2)

有很多方法可以实现,但基于您的代码,最简单的方法是确保在添加它们时将GridBagConstraints与您添加的组件一起传递...

file_select_panel.add(file1_tf, gbc);
//...
file_select_panel.add(add_f1_button, gbc);
//...
file_select_panel.add(rem_f1_button, gbc);
//...etc...

您可能会发现需要仔细查看How to Use GridBagLayout帮助,尤其要看一下标有“指定约束”的部分