GridLayout为空边距

时间:2014-10-06 12:15:19

标签: java swing layout-manager grid-layout flowlayout

我放了几个JPanel,每个JPanels都包含一个GridLayout中的JLabel + JTextField(如下所示)。 我试图尽可能地减少单元格之间的空间。 我做了以下事情:

GridLayout resultsPanelLt = new GridLayout( 0, 3, 0, 0 );
resultsPanelLt.setVgap( 0 );
resultsPanelLt.setHgap( 0 );
JPanel resultPanel =  new JPanel( resultsPanelLt );

// I added several panels like this one
JPanel markUpPanel = new JPanel( new FlowLayout( FlowLayout.RIGHT ));
markUpPanel.setPreferredSize( new Dimension(100, 20) );
markUpPanel.setMaximumSize( new Dimension(100, 20) );
markUpPanel.setBorder(BorderFactory.createEmptyBorder(0,0,0,0));
markUpPanel.add( new JLabel( "MarkUp" ) );
JTextField markUp = new JTextField();
markUp.setMargin(new Insets(0, 0, 0, 0));
markUpPanel.add( markUp );

resultPanel.add( markUpPanel );

I would like to remove the spaces between rows 我想删除行之间的空格或将它们放到例如1px。

1 个答案:

答案 0 :(得分:4)

当您为resultPanel GridLayout创建并添加面板时,子面板会使用FlowLayout创建。这些儿童面板有5个像素水平和垂直间隙。

创建如下:

JPanel markUpPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0));

FlowLayout类有一个构造函数,您可以在其中指定水平和veritcal间隙,将0像素传递给它们。如果您没有指定它们,则默认值为5像素。