<CoreJava> 6.3 接口与回调
6.2 对象克隆,这节的内容实际开发中很少使用,所以略过。之后遇到相应的实例在去学习。
TimerPrinter.java:
6.3 接口与回调
回调相当于一个监听器,特定事件或时间采取相应的动作。
不做过多解释,直接进入实例。
源代码:例6-3,程序给出了一个定时器和监听器的操作行为。定时器启动后弹出一个对话框,点击OK来终止程序。程序运行每隔3秒显示一次当前时间。
注意:程序出了导入javax.swing.*和java.util.*外,通过类名导入javax.swing.Timer。这样消除了javax.swing.Timer与java.util.Timer之间的二义性。这里的java.util.Timer是一个与本例无关的类,它主要用于调度后台任务。
TimerTest.java:
- package com.vincent.corejava.timertest;
- import java.awt.event.*;
- import javax.swing.*;
- import javax.swing.Timer;
- public class TimerTest {
- public static void main(String[] args) {
- ActionListener listener = new TimerPrinter();
- Timer t = new Timer(3000, listener);
- t.start();
- JOptionPane.showMessageDialog(null, "Quit program?");
- System.exit(0);
- }
- }
TimerPrinter.java:
- package com.vincent.corejava.timertest;
- import java.awt.*;
- import java.awt.event.*;
- import java.util.*;
- class TimerPrinter implements ActionListener {
- @Override
- public void actionPerformed(ActionEvent e) {
- Date now = new Date();
- System.out.println("at the tone, the time is " + now);
- Toolkit.getDefaultToolkit().beep();
- }
- }
运行结果: