gpt4 book ai didi

java - 在同一个类中为三个按钮实现 ActionListener

转载 作者:行者123 更新时间:2023-12-02 13:20:43 26 4
gpt4 key购买 nike

我在一个框架中有三个按钮,其中两个我想编辑一个字符串,它是主类(Lab2TestDrive)中的包公共(public)成员,类似于

 public class Lab2TestDrive{
...
String cale;

public static main void(String[] args){
JButton button1.. button2.. button3..

}

我可以在 Lab2TestDrive 上实现 ActionListener,并重写其中的 actionPerformed(...) 方法吗?但如果我这样做,我不知道如何知道哪个按钮触发了 actionPerformed 方法。

我知道我可以单独开设一门类(class),

public class ButtonListener implements ActionListener {
JButton button;
ButtonListener(JButton button){
this.button = button;
}

@Override
public void actionPerformed(ActionEvent arg0) {
if(button.getText().equals("Save")){

};

}
}

但是我不知道如何访问“cale”变量:(

最佳答案

首先:您不应该让您的 ActionEvent 被称为 arg0

然后:从技术上讲,您可以在一个类中完成所有工作。您的 ActionEvent 参数有一个名为 getSource() 的方法,它将为您获取触发事件的按钮。

理论上,您还可以创建第三个类来存储 cale 变量,并将对该类的引用作为监听器构造函数的参数。

但是,这似乎非常不直观。

您还可以向监听器的构造函数提供对 Lab2TestDrive 对象的引用,然后从 actionPerformed 中调用该类的方法。

说实话,这些选项都没有让我觉得是很好的编码实践,但它们都应该有效。

关于java - 在同一个类中为三个按钮实现 ActionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586186/

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