你怎么删除/减少复选框
之间的间距与MigLayout
作为?摇摆:复选框间距相对于标签
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);
}
}
注意:我不知道,也许,如果这个问题的MigLayout部分是红鲱鱼。如果我改变我的计划,下面,我得到这些对话框:
你会注意到在标签和复选框之间的间距的差异。我怎样才能摆脱复选框的多余空间?
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);
}
}
它仍然无法正常工作。也许这不是一个miglayout的事情,也许这是一个复选框的事情,而不是:我用你的建议,以增加行间距100,我得到更多的空间。但是,如果我将行间距改为0,那么我得到的或多或少都是我开始的,而且我不想要额外的间距。 – 2011-01-12 15:56:23
如果我使用“包-3”,那么它看起来正确的,但有可疑之处使用数量小于0 – 2011-01-12 15:59:13