繁体   English   中英

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

[英]Java FlowLayout - Margin/padding of specific elements?

我是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类(以及一些其他布局类)允许您在其构造函数中设置水平和垂直间隙,如下所示:

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

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

您应该考虑使用EmptyBorder为您的组件“填充”。 如果JPanel或其他组件周围需要多种类型的边框,则可以创建复合边框或嵌套JPanel。 对于组件之间的间隙,您可以使用如上所述的FlowLayout设置,或者可以使用Box类中的支柱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM