usar que parametros gridlayout ejemplos dividir como botones borderlayout acomodar java swing layout checkbox

java - que - Cómo reducir el espacio entre JCheckboxes en GridLayout



layout ejemplos java (3)

Tengo tres JCheckboxes Java en una columna, organizadas configurando el diseño del contenedor JPanel en GridLayout(3, 1, 1, 1) . Cuando ejecuto el programa, hay demasiado espacio vertical entre los JCheckBoxes; parece más de 1 píxel. Como ya he establecido el espacio vertical entre las JCheckboxes en el diseño para que sea de 1 píxel, ¿de qué otra forma puedo reducir el espacio vertical entre estas JCheckboxes?

Gracias.


GridLayout usando GridLayout , BorderLayout y GridBagLayout y creo que cualquier espacio vertical adicional que esté presente en su aplicación se debe al tamaño del componente JCheckBox, no relacionado con el administrador de diseño. Todos los ejemplos a continuación no tienen espacio entre los componentes en el administrador de diseño.

Diseño de cuadrícula

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


¿Ayuda si configura el borde de la casilla de verificación?

JCheckBox checkBox = new JCheckBox(); checkBox.setBorder(BorderFactory.createEmptyBorder());

También puede deberse a la representación del delegado de UI de Look & Feel. Por lo general, tienes poco control sobre esto.


Gracias Steve y Alex. Ambas respuestas fueron correctas. Al establecer el borde en un borde vacío, pude mover las casillas de verificación más cerca.