gpt4 book ai didi

Java,actionPerformed() 内的 if 语句未执行

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

import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class MyGUI extends JFrame implements ActionListener
{
JButton btnA;
public MyGUI()
{
setTitle("Test GUI");
setSize(500, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setLayout(null);
setLocationRelativeTo(null);

JButton btnA=new JButton("A");
btnA.setSize(100, 20);
btnA.setLocation(0, 0);
btnA.addActionListener(this);

add(btnA);
}

public void actionPerformed(ActionEvent e)
{
System.out.println(e.toString());
System.out.println("Action detected");
if(e.getSource().equals(btnA))
System.out.println("A was pressed");
}
}

我正在开始使用 Java GUI。我有一个按钮。但是,当我单击该按钮时,第三条打印语句并未执行,尽管从事件的 toString() 信息来看它应该执行。这是怎么回事?

最佳答案

执行此行时,您正在声明一个局部变量:

JButton btnA=new JButton("A");

成员字段btnA保持未初始化状态。将行更改为:

btnA=new JButton("A");

(顺便说一下,在这种情况下,使用 == 而不是调用 equals() 是安全的,甚至可能更清楚地表达您的意图>.)

关于Java,actionPerformed() 内的 if 语句未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22534516/

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