对于下面这个程序,为什么选第二或者第三个按钮时,总是打印出"不喜欢."?
谁能帮忙解释一下原因?
并帮我修改一下,让-它正确打印出来.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();
}}
谁能帮忙解释一下原因?
并帮我修改一下,让-它正确打印出来.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();
}}
为什么"Checkbox cbx=new Mm().cbg.getSelectedCheckbox();"没有获得当前的选项呢?
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();
}}修改后就好了.
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();
}
}这个才是我想要实现的真正目的,也许是一开始我没说好````
不过还是很谢谢你的热心帮助!