gpt4 book ai didi

java - Java 中的事件和监听器

转载 作者:行者123 更新时间:2023-11-29 07:57:49 25 4
gpt4 key购买 nike

这应该是适合初学者的基本Java程序,可以在 “Head First Java 2nd Edition”关于 ActionListener 接口(interface)的主题。

我不明白这个程序中使用的一些术语,例如

button.addActionListener(this);

当此代码执行时,方法 actionPerformed 是如何触发或运行的,或者您使用的任何术语??

//Program begins from now!!

import javax.swing.*;

import java.awt.event.*;

public class SimpleGui1B implements ActionListener {

JButton button;

public static void main(String[] args) {

SimpleGui1B gui = new SimpleGui1B();
gui.go();

}

public void go(){ //start go
JFrame frame= new JFrame();
button=new JButton("Click me");

frame.getContentPane().add(button);

button.addActionListener(this);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(300,300);
frame.setVisible(true);
}//close go()

public void actionPerformed(ActionEvent event){
button.setText("I’ve been clicked!");

}


}

最佳答案

让我们分解一下这个陈述:

button.addActionListener(this);

好的,所以您正在引用 button 对象。我认为这是 JButton 类型的对象。 button 对象有一个名为 addActionListener 的方法。它的作用是添加一个实现 ActionListener 接口(interface)的对象。

发生这种情况的类是这些对象之一。正如您在顶部看到的那样:

public class SimpleGui1B implements ActionListener 

所以程序正在做的是说当前类 (this) 将作为您的方法的参数。然后,如果您查看此类,您将有一个方法 actionPerformed

public void actionPerformed(ActionEvent event){
button.setText("I’ve been clicked!");

}

这意味着无论何时单击按钮,都会调用 actionPerformed 方法中的代码。另一种选择是说:

button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
// Add some code here.
}

这是做同样的事情,只是它定义了括号内的类。

关于java - Java 中的事件和监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16362890/

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