package com.mycheckbox;import java.awt.*;
import java.awt.event.*;public class MyCheckbox extends Frame{ /**
 * @param args
 */

Checkbox checkboxMultiple1 = new Checkbox("你喜欢我吗?", true); //添加多选按钮.
CheckboxGroup checkboxGroup = new CheckboxGroup();  //添加按钮组.
Checkbox checkboxSingle1 = new Checkbox("喜欢", checkboxGroup, true); //添加单选按钮.
Checkbox checkboxSingle2 = new Checkbox("不喜欢", checkboxGroup, false);
Checkbox checkboxSingle3 = new Checkbox("不知道", checkboxGroup, false);
/*用同一个事件监听器类去处理四个按钮,所以定义成内部类。*/


class MyItemListener implements ItemListener {  //事件监听器类.
public void itemStateChanged(ItemEvent e) {
Checkbox mc =(Checkbox)e.getItemSelectable();
if (mc.getLabel().equals("你喜欢我吗?")) {
if (mc.getState() == true) {
System.out.println("我很高兴!");
} else {
System.out.println("我很伤心!");
}
}else {
Checkbox c =checkboxGroup.getSelectedCheckbox();
if (c != null) {
System.out.println(c.getLabel());

}
}
}

public MyCheckbox(){
FlowLayout fl = new FlowLayout(); //设置布局.
setLayout(fl);
Frame f = new Frame();
f.setSize(500, 300);
f.setVisible(true);
f.add(checkboxMultiple1); //添加按钮.
f.add(checkboxSingle1);
f.add(checkboxSingle2);
f.add(checkboxSingle3);
MyItemListener mil = new MyItemListener(); 
checkboxMultiple1.addItemListener(mil); //为多选按钮注册监听器.
checkboxSingle1.addItemListener(mil);
checkboxSingle2.addItemListener(mil);

f.addWindowListener(new WindowAdapter() { //注册窗口监听器.
public void windowClosing(WindowEvent e){
e.getWindow().dispose();
e.getWindow().setVisible(false);
System.exit(0);
}
});
}

public static void main(String[] args) {
// TODO Auto-generated method stub
MyCheckbox mc = new MyCheckbox();
}}
大家帮忙看一下为什么?问题大家运行了就懂了,没能达到我的需求:
我的需求是出现 全部的单选和多选按钮,然后出现代码中的结果!
请大家看看,麻烦了!

解决方案 »

  1.   


    Frame f = new Frame();
     f.setSize(500, 300);
     f.setVisible(true);
     f.add(checkboxMultiple1); //添加按钮.
    f.add(checkboxSingle1);
     f.add(checkboxSingle2);
     f.add(checkboxSingle3);
     MyItemListener mil = new MyItemListener();  
    checkboxMultiple1.addItemListener(mil); //为多选按钮注册监听器.楼主,注意下这地方。 你Frame应该先添加panel,然后在panel中添加你要添加的按钮。Frame f = new Frame();
     f.setSize(500, 300);
     f.setVisible(true);
    //先创建一个panel
     Panel panelButton = new Panel();
     f.add(panelButton);
     panelButton.add(checkboxMultiple1);
     panelButton.add(checkboxSingle1);
     panelButton.add(checkboxSingle2);
     panelButton.add(checkboxSingle3);
     MyItemListener mil = new MyItemListener();  
    checkboxMultiple1.addItemListener(mil); //为多选按钮注册监听器.