我不明白为什么要为ActionListener接口的实例分配一个新的类实例。
我遇到了Core Java 9 Edition中的一个示例。在该示例中,为ActionListener接口的实例分配了类的新实例。作者并没有很清楚地解释那段代码。我在网上检查了有关ActionListener接口的信息,但没有找到类似的任务。
package ch6.timer;
/**
* @version 1.00 2000-04-13
* @author mcmay2006
*/
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
// to resolve conflict with java.util.Timer
public class TimerTest {
public static void main(String[] args) {
ActionListener listener = new TimePrinter();
// construct a timer that calls the listener
// once every 10 seconds
Timer t = new Timer(10000, listener);
t.start();
JOptionPane.showMessageDialog(null, "Quit program?");
System.exit(0);
}
}
// The following code is in another .java file
package ch6.timer;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class TimePrinter implements ActionListener {
public void actionPerformed(ActionEvent event) {
Date now = new Date();
System.out.println("At the tone, the time is " + now);
Toolkit.getDefaultToolkit().beep();
}
}
我编译并运行了没有显示错误,警告或任何异常的程序。这是否意味着代码没有问题?请通过解释为什么“ ActionListener listener = new TimePrinter();”语句没有问题来帮助我。
谢谢。