本文介绍了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)来包装每一对标签。我会为此创建一个自定义组件类。

这篇关于Java FlowLayout-特定元素的边距/填充?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。