gpt4 book ai didi

java - 按钮上的 getSource 方法出现问题

转载 作者:行者123 更新时间:2023-12-01 04:39:43 33 4
gpt4 key购买 nike

我有一个带有 2 个 JButton 的 GUI,我想知道哪一个正在使用 getSource 方法触发事件。我在 Google 上查找了问题的解决方案,但找不到,这是我的代码:

@Override
public void actionPerformed(ActionEvent event){
if (event.getSource() == btn1){
System.out.println("this should work");
}else if (event.getSource() == btn2){
System.out.println("this should work as well");
}

但是当我按任一按钮时它不会打印任何内容,我也尝试过:

 @Override
public void actionPerformed(ActionEvent event){
if ((JButton)event.getSource() == btn1){
System.out.println("this should work");
}else if ((JButton)event.getSource() == btn2){
System.out.println("this should work as well");
}

但这也不起作用。

有人可以告诉我出了什么问题吗?

最佳答案

我建议对你的按钮使用 2 个不同的 actionListener,所以你不必这样做(如果有的话)

btn.addActionListener(new MyActionListener1());
btn2.addActionListener(new MyActionListener2());

但是如果你想测试你的问题,我建议你声明你的变量 btn1 和 btn2作为最终的。

final JButton btn1= new JButton();
final JButton btn2= new JButton();

这样你就可以确保你的变量总是“指向”同一个位置。您可以做的另一件事是将属性名称设置为按钮,以便您可以对该属性执行 equals 操作

btn1.setName("name");

并在actionListener中

@Override
public void actionPerformed(ActionEvent event){
if ( btn1.getName().equals( ( (Component)event.getSource() ).getName()){
System.out.println("this should work");
....

关于java - 按钮上的 getSource 方法出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16756200/

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