加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java FlowLayout – 特定元素的边距/填充?

发布时间:2020-12-15 02:07:14 所属栏目:Java 来源:网络整理
导读:我是Swing的新手,我正在尝试制作一个GUI. 使用Netbeans的GUI创建者的东西,我设法制作了我喜欢的东西.但是我使用编辑器让我感觉很糟糕,所以现在我尝试使用代码进行相同的设计. 这是我想要制作的图片: 现在我只专注于创建“标准”部分(是的,我知道我在图片中
我是Swing的新手,我正在尝试制作一个GUI.
使用Netbeans的GUI创建者的东西,我设法制作了我喜欢的东西.但是我使用编辑器让我感觉很糟糕,所以现在我尝试使用代码进行相同的设计.
这是我想要制作的图片:

现在我只专注于创建“标准”部分(是的,我知道我在图片中拼错了)
这是我目前所拥有的:

我用红色突出显示了我想增加保证金的地方:

>在文本框右侧和标签左侧之间
>在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实现此效果,请告诉我应该使用的是什么.

解决方法

摆动倾向于称边距或边界“差距”. FlowLayout类(以及一些其他布局类)允许您设置水平和垂直间隙 in its constructor,如下所示:

private static final int PADDING = 3;   // for example
...
    setLayout(new FlowLayout(FlowLayout.LEADING,PADDING,PADDING));

但是,这会在标签及其文本框之间添加填充,但您可以将每个对包装在JPanel中(可能使用FlowLayout).我会为此创建一个自定义组件类.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读