【发布时间】:2013-09-25 17:00:09
【问题描述】:
以下是我添加标签和文本字段的代码。 我想添加它,使其 [label] [textfield] 在 2 列中
我知道我可以通过使用 gridlayout 来做到这一点,但行数需要固定,因此是否有另一种添加方法,无论我添加多少 [label] [textfield],它都会是 2专栏
图片显示预期视图
但目前是 [label] [textfield] [label2] [textfield2] [label3] [textfield3]
public WizardPage page1() {
WizardPage page1 = new WizardPage("1", "Page 1") {
{
JTextField txt1 = new JTextField();
JTextField txt2 = new JTextField();
JTextField txt3 = new JTextField();
JTextField txt4 = new JTextField();
txt1.setName("text1");
txt2.setName("text2");
txt3.setName("text3");
txt4.setName("text4");
txt1.setPreferredSize(new Dimension(50, 20));
txt2.setPreferredSize(new Dimension(50, 20));
txt3.setPreferredSize(new Dimension(50, 20));
txt4.setPreferredSize(new Dimension(50, 20));
add(new JLabel("text1"));
add(txt1);
add(new JLabel("text2"));
add(txt2);
add(new JLabel("text3"));
add(txt3);
add(new JLabel("text4"));
add(txt4);
}
};
return page1;
}
> public WizardPage(String title, String description){
>
> PropertyConfigurator.configure("config/log4j.properties");
> log = Logger.getLogger(WizardPage.class);
>
> _title = title;
> _description = description;
>
>
> setLayout(new FlowLayout()); );
addContainerListener(new WPContainerListener());
this.setDoubleBuffered(true);
}
【问题讨论】:
-
stackoverflow.com/questions/12835198/… 使用 BoxLayout,查看我的其他答案以找到更多示例
-
但是 boxlayout 不是把所有东西都放在一列吗?
-
您可以嵌套布局,因此可以使用
BoxLayout。如果要使用GridLayout,请使用构造函数:new GridLayout(0, 2)。这会将列数设置为 2,并根据需要添加行。 -
但如果我有 4 行,我必须更改为 GridLayout(4, 2)。它不能更加动态,无论行数如何,它总是 2 列
-
请阅读我写的内容:将列数设置为2,并根据需要添加行。将 rows 设置为 0 可提供您想要的动态行为。