为什么要为ActionListener接口分配一个类的实例?

时间:2019-07-06 12:51:42

标签: java interface actionlistener

我不明白为什么要为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();”语句没有问题来帮助我。

谢谢。

0 个答案:

没有答案