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

标签 java swing padding layout-manager gaps-in-visuals

我是 Swing 的新手,我正在尝试制作一个 GUI。 使用 Netbeans 的 GUI 创建器,我设法做出了我喜欢的东西。但是我为此使用编辑器让我感觉很糟糕,所以现在我正在尝试使用代码进行相同的设计。 这是我正在尝试制作的图片: what I want to make 现在我只是专注于创建“标准”部分(是的,我知道我在图片中拼错了) 这是我目前拥有的: what I currently have 我用红色突出显示了我想增加边距的地方:

  • 在文本框右侧和标签左侧之间
  • 在条件面板顶部和 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/

相关文章:

html - CSS 侧边栏背景色全宽

c# - 如何在 wpf 中的内部 TextBoxView 上设置边距

JavaFX ImageView - 图像清理

java - 如何在大纲中显示父方法/变量?

java - 关于布局管理器使用的困惑

java - 遍历启用和禁用的组件

html - 在 IE 中填充文本输入...可能吗?

java - 如何保存 fragment 的状态

java - 在 Java FXML 标记文件中运行 Java 代码

java - 如何绑定(bind)到此 JList 以便更改向用户显示的内容?