如何在checkboxgroup中处理项目事件

时间:2014-04-15 13:06:42

标签: java checkbox applet awt itemlistener

我无法处理在applet中充当单选按钮的checkboxgroup事件。 我想在选择复选框时在applet上显示一条消息,但它不起作用.. 我想在applet中显示一个带有标签的复选框状态,每当选中任何复选框时,它似乎都会显示复选框的标签和状态......复选框的状态也没有改变...当我点击复选框时c2即“否”,则复选框的状态不会改变......

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
/*<applet code="chg.class" height=500 width=600></applet>*/
public class chg extends Applet implements ItemListener
{
    String msg="Current Selection is:";
    Checkbox c1,c2,c3,c4,c5;
    CheckboxGroup cbg;
    public void init()
    {
        cbg=new CheckboxGroup();
        c1=new Checkbox("YES",cbg,true);
        c2=new Checkbox("No",cbg,false);
        c3=new Checkbox("can",cbg,false);
        c4=new Checkbox("cant",cbg,false);
        c5=new Checkbox("ok",cbg,false);
        add(c1);
        add(c2);
        add(c3);
        add(c4);
        add(c5);
    }

    public void itemStateChanged(ItemEvent ie)
    {
        if(ie.getSource()==c2)
        {
            cbg.setSelectedCheckbox(c2);
        }
        else if(ie.getSource()==c3)
        {
            cbg.setSelectedCheckbox(c3);
        }
        else if(ie.getSource()==c4)
        {
            cbg.setSelectedCheckbox(c4);
        }
        else
        {
            cbg.setSelectedCheckbox(c5);
        }
        repaint();
    }
    public void paint(Graphics g)
    { 
        msg+=cbg.getSelectedCheckbox().getLabel();
        g.drawString(msg,6,130);
    }
}

1 个答案:

答案 0 :(得分:0)

您需要将项目监听器添加到复选框中。

c1.addItemListener(this);
c2.addItemListener(this);
c3.addItemListener(this);
c4.addItemListener(this);
c5.addItemListener(this);

如果不在框中添加itemListener,则无法获取项目事件。