Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTextField边距_Java_Swing_Jtextfield - Fatal编程技术网

Java JTextField边距

Java JTextField边距,java,swing,jtextfield,Java,Swing,Jtextfield,我想给文本字段添加边距 当前效果/期望效果: 如您所见,我想在JTextField中添加10px的左边距 当前代码: textField_host.setBorder( BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(Color.DARK_GRAY), BorderFactory.createEmptyBorder(0, 20, 0, 0 ) ) ); 如何

我想给文本字段添加边距

当前效果/期望效果:

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

当前代码:

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

如何做到这一点?谢谢。

您可以在文本字段的左侧添加一个
框。CreateHorizontalStruct(10)

因此,如果您查看,您将看到参数按顺序在
外部
内部

public static CompoundBorder createCompoundBorder(Border outsideBorder,
                              Border insideBorder)
这意味着你应该更像

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

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

使用布局管理器,它可以为您提供填充位置的方法,如
GridBagLayout
,例如,您是否尝试过将文本字段放入带有边框的
JPanel
?这可能是实现您想要的效果的最简单方法。理想情况下,您可以使用父布局管理器实现与周围组件的对齐。此外,它应该
BorderFactory.createCompoundBorder(外部,内部)
,因此它应该更像
textField\u host.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder)(0,20,0,0),textField_host.getBorder())