JTextField 边距

JTextField margins

我想给 TextField 添加边距。

当前效果/期望效果:

如您所见,我想为 JTextField 添加 10px 的左边距。

当前代码:

textField_host.setBorder(
    BorderFactory.createCompoundBorder(
        BorderFactory.createLineBorder(Color.DARK_GRAY),
        BorderFactory.createEmptyBorder(0, 20, 0, 0 )
    )
);

如何实现?谢谢。

您可以在文本字段的左侧添加一个 Box.createHorizontalStrut(10)

因此,如果您查看 JavaDocs for BorderFactory.createCompoundBorder,您会发现参数的顺序为 outsideinside...

public static CompoundBorder createCompoundBorder(Border outsideBorder,
                              Border insideBorder)

这意味着你应该更像...

textField_host.setBorder(
    BorderFactory.createCompoundBorder(
        BorderFactory.creat‌​eEmptyBorder(0, 20, 0, 0 ), 
        textField_host.getBorder()
    )
);

另一种解决方案是使用布局管理器,它可以让您更好地控制布局,例如 GridBagLayout