📄 thread15_4.java
字号:
/** * FileName:Thread15_4 * Description: * Copyright: Copyright (c) 2002 * Company: * @author:Liyunshan * @version 1.0 */import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Calendar;//监听器接口interface TimerListener{ void execute(MyTimer t);}//计时器class MyTimer extends Thread{ private int interval; //表示时间间隔的毫秒数 private TimerListener target; //表示执行动作目标对象 public MyTimer(int i, TimerListener t) { interval = i; target = t; setDaemon(true); //设置该线程在后台运行 } public void run() { try { while(!interrupted()) { sleep(interval); target.execute(this); } } catch(InterruptedException e){} }}class TimeField extends JTextField implements TimerListener{ public TimeField(int n) { super(n); } public void execute(MyTimer t) { Calendar calendar = Calendar.getInstance(); //得到系统日历 int hour, minute, second; hour = calendar.get(Calendar.HOUR_OF_DAY); minute = calendar.get(Calendar.MINUTE); second = calendar.get(Calendar.SECOND); String time = hour + ":" + minute + ":" + second; setText(time); }}class TimerFrame extends JFrame{ TimeField timeField; //用于显示时间 MyTimer timer; //计时器 //类构建器 public TimerFrame() { super("Timer"); Container pane = getContentPane(); timeField = new TimeField(5); JPanel paneTime = new JPanel(); pane.add(paneTime, "Center"); paneTime.add(timeField); setSize(200, 100); //设置窗体大小 setVisible(true); //设置窗体为可见 timer = new MyTimer(1000, timeField); //时间间隔为1秒 timer.start(); timeField.setEditable(false); //设置为不可编辑 //关闭窗口事件 addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); }}public class Thread15_4{ public static void main(String args[]) { TimerFrame frame = new TimerFrame(); frame.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -