Java FlowLayout删除第一个组件前面的水平空间
有没有更简单的方法来移除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
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。我试过了,问题是两边都有一个间隙,而我实际上在第一个标签的左边有一个间隙,然后在两侧的间隙中添加任何其他标签。