¿Cómo se elimina/reduce el espaciado entre las casillas de verificación
con MigLayout
?Oscilación: espacio de casilla de verificación en comparación con las etiquetas
import java.util.Arrays;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
public class CheckboxSpacing {
public static void main(String[] args) {
JFrame frame = new JFrame("checkbox spacing");
JPanel panel = new JPanel();
frame.setContentPane(panel);
panel.setLayout(new MigLayout());
for (String verb : Arrays.asList("see","hear","speak"))
{
JCheckBox cb = new JCheckBox(verb+" no evil");
panel.add(cb, "wrap");
}
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
NOTA: Me pregunto si tal vez la parte MigLayout de esta pregunta es una pista falsa. Si cambio de programa a la siguiente, consigo estos diálogos:
se dará cuenta de la diferencia en la distancia entre las etiquetas y las casillas de verificación. ¿Cómo puedo eliminar el exceso de espacio para las casillas de verificación?
import java.awt.Component;
import java.util.Arrays;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
public class CheckboxSpacing {
enum WhichGUI { LABEL {
@Override
public Component createComponent(String text) {
return new JLabel(text);
}
}, CHECKBOX {
@Override
public Component createComponent(String text) {
return new JCheckBox(text);
}
};
abstract public Component createComponent(String text);
}
public static void main(String[] args) {
doit(WhichGUI.LABEL);
doit(WhichGUI.CHECKBOX);
}
private static void doit(WhichGUI which) {
JFrame frame = new JFrame("spacing: "+which);
JPanel panel = new JPanel();
frame.setContentPane(panel);
panel.setLayout(new MigLayout(
"", //layout
"[]", //column
"0" //row
));
for (String verb : Arrays.asList("see","hear","speak"))
{
Component c = which.createComponent(
verb+" no evil (Jabberwocky! Çgpq)");
panel.add(c, "wrap 0");
}
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
gracias! Finalmente tuve tiempo de probarlo, y establecer la casilla de verificación para anular redujo el espacio vacío. Parece que necesita un poco de espacio para que el rectángulo de foco se reproduzca correctamente, así que hice 'cb.setBorder (nuevo EmptyBorder (nuevas Insets (1,1,1,1)));' y eso parece ser un buen compromiso . –