我有一个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#equals
或String#equalsIgnoreCase
if (ACT_CMD_1.equals(e.getActionCommand())) {
//...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句