gpt4 book ai didi

java - java中的事件处理和java中actionPerformed方法的执行

转载 作者:行者123 更新时间:2023-11-29 10:16:59 26 4
gpt4 key购买 nike

我已经用 java 为 simpleGUI 编写了一小段代码。

package guidemo1;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class GuiDemo1 implements ActionListener{
JButton button;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
GuiDemo1 gui=new GuiDemo1();
gui.go();
}

public void go()
{
JFrame frame=new JFrame();
button=new JButton();
frame.getContentPane().add(button);
button.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);

}
@Override
public void actionPerformed(ActionEvent e) {
//throw new UnsupportedOperationException("Not supported yet.");
button.setText("I've been clicked");
}
}

我是 JAVA 的新手。我对这个程序有一些疑问。

谁能解释一下 actionPerformed 方法是如何在没有任何调用的情况下执行的?

这里我在 go() 方法中本地定义了框架对象,我们在 actionPerformed 中使用按钮,这是另一种方法。这怎么可能?按钮不是嵌入在框架上吗?

谢谢..

最佳答案

欢迎来到事件驱动的环境。

在这种环境中,您注册“监听器”,等待某些事情发生,然后通过定义良好的接口(interface)结构向您报告。

基本上,发生的事情是,您将自己注册为对按钮上可能发生的操作事件感兴趣的一方。您已通过实现 ActionListener 接口(interface)完成了此操作。这允许按钮在执行操作时在将来某个时间回调到您的 actionPerformed 方法。

这通常称为观察者模式。

您可能会找到 Writing Event Listeners有用的读物​​

关于java - java中的事件处理和java中actionPerformed方法的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15000143/

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