package T13; //Clock.java import java.awt.*; import javax.swing.*; import java.util.*; //import Date and Locale import java.text.SimpleDateFormat; public class Clock extends JApplet implements Runnable { Thread clockThread; public void init() { //在JApplet的方法init 中,创建一线程命名为Clock clockThread = new Thread(this, "Clock-thread"); clockThread.start(); } //实现Runnable接口中的方法run,每隔一秒刷新时钟画面 public void run() { boolean flag=true; while (flag) { repaint(); try { clockThread.sleep(1000); } catch (InterruptedException e) { flag=false;} } //end of while } //end of run public void paint(Graphics g){ //JApplet的方法paint,显示当前时钟对象的值 super.paint(g); SimpleDateFormat formatter = new SimpleDateFormat (" hh:mm:ss ", Locale.getDefault()); Date currentDate = new Date(); String lastdate = formatter.format(currentDate); g.drawString(lastdate ,5, 10); } public void destroy() { //JApplet的方法 clockThread.interrupt(); } }
时间: 2024-02-14 14:09:13 浏览: 97
好的,下面是添加注释后的代码:
```java
package T13; // 定义包名
import java.awt.*; // 导入 AWT 组件
import javax.swing.*; // 导入 Swing 组件
import java.util.*; // 导入 Java 的工具类
// 导入日期格式化工具类
import java.text.SimpleDateFormat;
public class Clock extends JApplet implements Runnable { // 定义 Clock 类,并实现 Runnable 接口
Thread clockThread; // 定义线程变量
public void init() { // 重写 JApplet 的 init() 方法
clockThread = new Thread(this, "Clock-thread"); // 创建线程对象
clockThread.start(); // 启动线程
}
public void run() { // 实现 Runnable 接口的 run() 方法
boolean flag = true; // 定义标志变量
while (flag) { // 如果标志变量为 true,就一直循环
repaint(); // 调用 repaint() 方法,刷新时钟的画面
try {
clockThread.sleep(1000); // 让线程休眠 1 秒
} catch (InterruptedException e) {
flag = false; // 如果线程被中断,将标志变量设为 false,跳出循环
}
}
}
public void paint(Graphics g) { // 重写 JApplet 的 paint() 方法
super.paint(g); // 调用父类的 paint() 方法
SimpleDateFormat formatter = new SimpleDateFormat(" hh:mm:ss ", Locale.getDefault()); // 创建日期格式化对象
Date currentDate = new Date(); // 创建日期对象
String lastdate = formatter.format(currentDate); // 调用格式化对象的 format() 方法,将日期格式化成字符串
g.drawString(lastdate, 5, 10); // 在画布上显示字符串
}
public void destroy() { // 重写 JApplet 的 destroy() 方法
clockThread.interrupt(); // 中断线程
}
}
```