获取调用ActionListener的对象的实例

itz

我有一个ActionListener类和一个带有JCheckBox的类,位于2个单独的文件中。ActionListener会检查该复选框是否已选中,并更改该复选框旁边的文本,并适当地取消选择或选中该复选框。我不知道的是如何获取该复选框的实例以检查它是否被选中。我尝试将e.getSource强制转换为JCheckBox,但编译器不允许这样做。

ActionListener类别:

public MyAL extends ActionListener
{
    public void actionPerformed(ActionEvent e) 
    {
        if (e.getActionCommand() == MyClass.ACT_CMD_!)
        {
            //if (checkbox is selected)
                //set checkbox text to "I'm Not Selected";
                //deselect the checkbox;
            //else
                //set checkbox text to "I'm Selected";
                //select the checkbox;
        }
    }
}

具有JCheckBox的类:

public class MyClass 
{
    final static ACT_CMD_1 = "CHECK BOX";
    JCheckBox cb; 

    MyClass()
    {
        cb= new JCheckBox("I'm Not Selected");
        cb.addActionCommand(MyClass.ACT_CMD_1);
        cb.addActionListener(new MyAL());
    }
}
疯狂程序员

您可以从ActionEvent本身获取事件的来源,例如...

Object obj = e.getSource();
if (obj instanceof JCheckBox) {
    JCheckBox cb = (JCheckBox)obj;
}

另外,请勿使用Java中的s==进行比较String,而应使用String#equalsString#equalsIgnoreCase

if (ACT_CMD_1.equals(e.getActionCommand())) {
    //...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章