Java 如何将我的复选框放在Swing中的文本字段下?
我有一个文本字段来表示名称,还有一个用于注册类型的组合框。接下来,我有一个复选框,但它应该在其他两个字段下面。以下是我编写的代码:Java 如何将我的复选框放在Swing中的文本字段下?,java,swing,Java,Swing,我有一个文本字段来表示名称,还有一个用于注册类型的组合框。接下来,我有一个复选框,但它应该在其他两个字段下面。以下是我编写的代码: public RegPanel() { //create a new panel new GridLayout(2,1); //create one of two subpanels subPanel = new JPanel(new FlowLayout()); //create a te
public RegPanel()
{
//create a new panel
new GridLayout(2,1);
//create one of two subpanels
subPanel = new JPanel(new FlowLayout());
//create a textfield
regTextField = new JTextField(20);
//create a combobox and don't let anyone add to it
regComboBox = new JComboBox(regOptions);
//create a border for the subpanel
subPanel.setBorder(BorderFactory.createTitledBorder("Registrant's Name & Type"));
//add regTypePanel and regBox to the panel
subPanel.add(regTextField);
subPanel.add(regComboBox);
//create a second subpanel with a flowlayout
subPanel2 = new JPanel(new FlowLayout());
//create a checkbox
regCheckBox = new JCheckBox("Dinner and Keynote Speech");
subPanel2.add(regCheckBox);
//add the subpanels to the main panel
add(subPanel);
add(subPanel2);
}
你知道我遗漏了什么吗?很抱歉布局糟糕,我不知道如何修复视图
所以我意识到我没有正确设置GridLayout,所以我把它改为“setLayout(新的GridLayout(2,1));
但是现在在我的gui上,它完全搞乱了所有其他元素的位置。无论如何
新建GridLayout(…)
除非在设置布局(…)
中使用它,否则什么都不做
您可以尝试使用Box.createVerticalBox()()而不是GridLayout使组件垂直对齐。此外,您可能希望使用BorderLayout,并意识到将一个布局嵌套在另一个布局中以实现不同的效果。在您的情况下,您使用的是
- RegPanel(哪个布局?)
- 子面板(流程布局)
- regTextField
- 注册表组合框
- 子面板2(流程布局)
- regCheckBox
- 子面板(流程布局)
在中,我只使用了
GroupLayout
(除了偶尔使用的一个BorderLayout)。这需要一些时间来适应(和一个包装类使代码更易于编写和阅读),但对于这样的表单内容,它似乎是理想的(仅限于内置布局管理器).这里必须提到的是,它是一个伟大的多用途布局管理器——一旦您了解了它,它将非常灵活且易于使用