建一个JCheckBox,使他处于“选中(打勾)”“点亮(非灰显)”且“不能重新选择(点击它不会改变其选中状态)”
 程序中怎么做 谢谢!!

解决方案 »

  1.   

    把它加入到一个单独的ButtonGroup(ButtonGroup中只有它一个按钮),并初始化选中状态。
      

  2.   

    用ButtonGroup怎么做?还是不太明白
      

  3.   

    import java.awt.BorderLayout;import javax.swing.*;public class T
    {
    public static void main(String[] args)
    {
    JCheckBox cb1 = new JCheckBox("Test1");
    ButtonGroup bg = new ButtonGroup();
    bg.add(cb1);

    JCheckBox cb2 = new JCheckBox("Test2");
    cb2.setModel(new JToggleButton.ToggleButtonModel() {
    public void setSelected(boolean b)
    {
    if (b)
    super.setSelected(b);
    }
    });

    JPanel p = new JPanel();
    p.add(cb1);
    p.add(cb2);

    JFrame f = new JFrame();
    f.getContentPane().add(p, BorderLayout.CENTER);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }
      

  4.   

    哪如果我有两个JCheckBox  A和B
    在初始化时设置分别为“选中”和“未选中”
    都是“点亮”的和“不能重新选择”,怎么做呀?
    有没有除“正常选中和未选中之后,在其上贴一个透明panel”的非变态方法?
      

  5.   

    import java.awt.BorderLayout;import javax.swing.*;public class T {
    public static void main(String[] args) {
    JCheckBox cb1 = new JCheckBox("Test1");
    JCheckBox cb2 = new JCheckBox("Test2");
    cb1.setModel(new UnChangeableCheckBoxModel(true));
    cb2.setModel(new UnChangeableCheckBoxModel(false)); JPanel p = new JPanel();
    p.add(cb1);
    p.add(cb2); JFrame f = new JFrame();
    f.getContentPane().add(p, BorderLayout.CENTER);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }class UnChangeableCheckBoxModel extends JToggleButton.ToggleButtonModel
    {
    private boolean selected;

    public UnChangeableCheckBoxModel(boolean selected) {
    this.selected = selected;
    setSelected(selected);
    }

    public void setSelected(boolean b) {
    if (b == selected) {
    super.setSelected(b);
    }
    }
    }