Java 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);

我看到的是标签 1 和标签 2 之间存在水平间隙,但是,它还在标签 1 前面添加了间距。我目前的解决方案是删除水平间隙并在 label2 中添加一个空边框来解决此问题。

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

您可以使用水平BoxLayout

panel.add( label1 );
panel.add( Box.createHorizontalStrut(5) );
panel.add( label2 );

或者,您可以向面板添加EmptyBorder,而不是标签:

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

尝试

new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));

第二个参数代表水平间隙。所以也许这可以解决你的问题。

您还可以查看:

  • http://docs.oracle.com/javase/7/docs/api/java/awt/FlowLayout.html

  • http://docs.oracle.com/javase/tutorial/uiswing/layout/flow.html

相关内容

  • 没有找到相关文章

最新更新