gpt4 book ai didi

java - 获取调用 ActionListener 的对象的实例

转载 作者:行者123 更新时间:2023-12-01 22:22:55 25 4
gpt4 key购买 nike

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

Action 监听器类:

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 中的 String,而应该使用 String#equals >String#equalsIgnoreCase

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

关于java - 获取调用 ActionListener 的对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29359235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com