我放了几个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 );
我想删除行之间的空格或将它们放到例如1px。
答案 0 :(得分:4)
当您为resultPanel
GridLayout
创建并添加面板时,子面板会使用FlowLayout
创建。这些儿童面板有5个像素水平和垂直间隙。
创建如下:
JPanel markUpPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0));
FlowLayout
类有一个构造函数,您可以在其中指定水平和veritcal间隙,将0像素传递给它们。如果您没有指定它们,则默认值为5像素。