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.