I have studied using GridLayout , BorderLayout and GridBagLayout , and I believe that any additional vertical space present in your application is related to the size of the JCheckBox component, not related to the layout manager. All of the examples below do not take place between components in the layout manager.
Gridlayout
//Changing to 3,1,1,0 makes slightly smaller (1 pixel) gap vertically GridLayout layout = new GridLayout( 3, 1, 1, 0 ); JPanel main = new JPanel( layout ); main.add( new JCheckBox( "box 1" ) ); main.add( new JCheckBox( "box 2" ) ); main.add( new JCheckBox( "box 3" ) );
GridBagLayout
GridBagConstraints gbc = new GridBagConstraints(); JPanel main = new JPanel( new GridBagLayout() ); gbc.gridx=0; gbc.gridy=0; gbc.ipady=0; main.add( new JCheckBox( "box 1" ), gbc ); gbc.gridy=1; main.add( new JCheckBox( "box 2" ), gbc ); gbc.gridy=2; main.add( new JCheckBox( "box 3" ), gbc );
Borderlayout
JPanel main = new JPanel( new BorderLayout() ); main.add( new JCheckBox( "box 1" ), BorderLayout.NORTH ); main.add( new JCheckBox( "box 2" ), BorderLayout.CENTER ); main.add( new JCheckBox( "box 3" ), BorderLayout.SOUTH );
source share