对于下面这个程序,为什么选第二或者第三个按钮时,总是打印出"不喜欢."?
谁能帮忙解释一下原因?
并帮我修改一下,让-它正确打印出来.import java.awt.*;
import java.awt.event.*;
public class Mm
{
    Checkbox cb1=new Checkbox("你喜欢我吗?",true);
    CheckboxGroup cbg=new CheckboxGroup();
    Checkbox cb2=new Checkbox("喜欢.",cbg,false);
    Checkbox cb3=new Checkbox("不喜欢.",cbg,true);
    public void ggmm()
    {
        Frame f=new Frame("世界如此忙碌,用心的你就会幸福!");
        FlowLayout f1=new FlowLayout();
        f.setLayout(f1);
        f.add(cb1);
        f.add(cb2);
        f.add(cb3);
        cb1.addItemListener(new Qq());
        cb2.addItemListener(new Qq());
        cb3.addItemListener(new Qq());
        f.setBounds(0,0,300,100);
        f.setVisible(true);
        f.addWindowListener(new WindowAdapter()
        {
           public  void windowClosing(WindowEvent e)
           {
               e.getWindow().setVisible(true);
               ((Window)e.getComponent()).dispose();
               System.exit(0);
           }
        });
    }
}
class Qq implements ItemListener
{
    public void itemStateChanged(ItemEvent e)
    {
        Checkbox cb=(Checkbox)e.getItemSelectable();        if(cb.getLabel().equals("你喜欢我吗?"))
        {
            if(cb.getState()==true)
                System.out.println("我很高兴!");
            else
                System.out.println("我很伤心!");
        }
         else
         {
                Checkbox cbx=new Mm().cbg.getSelectedCheckbox();
                System.out.println(cbx.getLabel());
          }
       }
    public static void main(String args[])
    {
        new Mm().ggmm();
    }}

解决方案 »

  1.   

    谁给我解释一下呀,
    为什么"Checkbox cbx=new Mm().cbg.getSelectedCheckbox();"没有获得当前的选项呢?
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    public class Mm
    {
        Checkbox cb1=new Checkbox("你喜欢我吗?",true);
        CheckboxGroup cbg=new CheckboxGroup();
        Checkbox cb2=new Checkbox("喜欢.",cbg,false);
        Checkbox cb3=new Checkbox("不喜欢.",cbg,true);
        public void ggmm()
        {
            Frame f=new Frame("世界如此忙碌,用心的你就会幸福!");
            FlowLayout f1=new FlowLayout();
            f.setLayout(f1);
            f.add(cb1);
            f.add(cb2);
            f.add(cb3);
            cb1.addItemListener(new Qq());
            cb2.addItemListener(new Qq());
            cb3.addItemListener(new Qq());
            f.setBounds(0,0,300,100);
            f.setVisible(true);
            f.addWindowListener(new WindowAdapter()
            {
               public  void windowClosing(WindowEvent e)
               {
                   e.getWindow().setVisible(true);
                   ((Window)e.getComponent()).dispose();
                   System.exit(0);
               }
            });
        }
    }
    class Qq implements ItemListener
    {
        public void itemStateChanged(ItemEvent e)
        {
            Checkbox cb=(Checkbox)e.getItemSelectable();
    /*********************************************************************/
    //这里的原因.        if(cb.getLabel().equals("喜欢."))  
            {
                if(cb.getState()==true)
                    System.out.println("我很高兴!");
                else
                    System.out.println("我很伤心!");
            }
             else
             {
                    Checkbox cbx=new Mm().cbg.getSelectedCheckbox();
                    System.out.println(cbx.getLabel());
              }
           }
        public static void main(String args[])
        {
            new Mm().ggmm();
        }}修改后就好了.
      

  3.   

    其实正确答案是这样的:
    import java.awt.*;
    import java.awt.event.*;
    class Mm
    {
        Checkbox cb1=new Checkbox("你喜欢我吗?",true);
        CheckboxGroup cbg=new CheckboxGroup();
        Checkbox cb2=new Checkbox("喜欢.",cbg,false);
        Checkbox cb3=new Checkbox("不喜欢.",cbg,true);
        public void ggmm()
        {
            Frame f=new Frame("世界如此忙碌,用心的你就会幸福!");
            FlowLayout f1=new FlowLayout();
            f.setLayout(f1);
            f.add(cb1);
            f.add(cb2);
            f.add(cb3);
            cb1.addItemListener(new Qq());
            cb2.addItemListener(new Qq());
            cb3.addItemListener(new Qq());
            f.setBounds(0,0,300,100);
            f.setVisible(true);
            f.addWindowListener(new WindowAdapter()
            {
               public  void windowClosing(WindowEvent e)
               {
                   e.getWindow().setVisible(true);
                   ((Window)e.getComponent()).dispose();
                   System.exit(0);
               }
            });
        }class Qq implements ItemListener
    {
        public void itemStateChanged(ItemEvent e)
        {
            Checkbox cb=(Checkbox)e.getItemSelectable();        if(cb.getLabel().equals("你喜欢我吗?"))
            {
                if(cb.getState()==true)
                    System.out.println("我很高兴!");
                else
                    System.out.println("我很伤心!");
            }
             else
             {
                    Checkbox cbx=cbg.getSelectedCheckbox();
                    System.out.println(cbx.getLabel());
              }
           }}
        public static void main(String args[])
        {
            new Mm().ggmm();
        }
    }这个才是我想要实现的真正目的,也许是一开始我没说好````
    不过还是很谢谢你的热心帮助!