Java FlowLayout-特定元素的边距/填充?
我对Swing非常陌生,我正在尝试制作一个图形用户界面。 使用NetBeans的图形用户界面创建器,我设法制作了我喜欢的东西。但这让我感觉很糟糕,我使用了这个编辑器,所以现在我正试图用代码来做同样的设计。 这是一张我正在尝试制作的图片: 现在我只专注于创建"Criteria"部分(是的,我知道我在图片中拼错了) 以下是我目前掌握的信息: 我用红色突出显示了我希望增加边距的位置:
- 文本框右侧和标签左侧之间
- 在"条件"面板顶部和JFrame之间
- 面板和JFrame的左右两侧
我来自网络开发行业,在那里增加利润是我想做的事情。如果这是错误的术语,请通知我。 以下是我目前使用的代码:
public class Criteria extends JPanel {
JLabel JobLabel = new JLabel();
JLabel BoxLabel = new JLabel();
JLabel PartLabel = new JLabel();
JTextField JobInput = new JTextField();
JTextField BoxInput = new JTextField();
JTextField PartInput = new JTextField();
public Criteria() {
setLayout(new FlowLayout(FlowLayout.LEADING));
setBorder(BorderFactory.createTitledBorder("Criteria"));
JobLabel.setText("Job");
JobLabel.setLabelFor(JobInput);
BoxLabel.setText("Box");
BoxLabel.setLabelFor(BoxInput);
PartLabel.setText("Part");
PartLabel.setLabelFor(PartInput);
JobInput.setColumns(8);
BoxInput.setColumns(8);
PartInput.setColumns(8);
add(JobLabel);
add(JobInput);
add(BoxLabel);
add(BoxInput);
add(PartLabel);
add(PartInput);
}
}
我不知道如何为这些组件增加保证金,因此非常感谢您的帮助。如果使用FlowLayout无法达到此效果,请告诉我应该使用什么。
解决方案
Swing倾向于将边距或边框称为"间隙"。FlowLayout
类(以及其他几个布局类)允许您设置水平和垂直间距in its constructor,如下所示:
private static final int PADDING = 3; // for example
...
setLayout(new FlowLayout(FlowLayout.LEADING, PADDING, PADDING));
这将在标签及其文本框之间添加填充,但是您可以用JPanel
(可能用FlowLayout
)来包装每一对标签。我会为此创建一个自定义组件类。
相关文章