Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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 FlowLayout删除第一个组件前面的水平空间_Java_Swing_Flowlayout - Fatal编程技术网

Java FlowLayout删除第一个组件前面的水平空间

Java FlowLayout删除第一个组件前面的水平空间,java,swing,flowlayout,Java,Swing,Flowlayout,有没有更简单的方法来移除FlowLayout中第一个组件前面的水平空间 这基本上就是我的代码的样子: JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 0)); JLabel label1 = new JLabel("Hello"); JLabel label2 = new JLabel("Goodbye"); panel.add(label1); panel.add(label2); 我看到的是label1和label2

有没有更简单的方法来移除FlowLayout中第一个组件前面的水平空间

这基本上就是我的代码的样子:

JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 0));
JLabel label1 = new JLabel("Hello");
JLabel label2 = new JLabel("Goodbye");
panel.add(label1);
panel.add(label2);
我看到的是label1和label2之间有一个水平间隙,但是,它也增加了label1前面的间距。我当前的解决方案是删除水平间隙,并向label2添加一个清空顺序来解决这个问题

但是对于有许多组件的情况,我想知道是否有更简单、更有效的方法来完成这么简单的事情?

试试看

new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
第二个参数表示水平间隙。也许这能解决你的问题

您还可以查看:


您可以使用水平
框布局

panel.add( label1 );
panel.add( Box.createHorizontalStrut(5) );
panel.add( label2 );
或者,您可以向面板添加
EmptyBorder
,而不是标签:

panel.setBorder( BorderFactory.createEmptyBorder(0, -5, 0, 0) );

您使用什么版本的JPanel?我很好奇,因为你在构造器中使用了3个参数(比较:)。一般来说,人们希望第一个组件前面的间隙。看起来好多了。@user2438518抱歉,修复了代码。吉尔伯特·勒布兰科:是的,但我需要让标签向左对齐,这就是为什么我需要删除间距。如果你想让许多标签和字段的列对齐,你可以使用GridBagLayout。我试过了,问题是两边都有一个间隙,而我实际上在第一个标签的左边有一个间隙,然后在两侧的间隙中添加任何其他标签。