我对 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 达到这个效果,那么请告诉我我应该用什么来代替。

    最佳答案

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

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

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

    关于Java FlowLayout - 特定元素的边距/填充?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10963896/

    10-10 18:25