?? clock.java.bak
字號(hào):
import java.awt.Graphics;
import java.util.Calendar;
import java.awt.Color;
/*類Clock繼承了java.applet.Applet,并實(shí)現(xiàn)了Runnable接口,由于類Clock中需要使用Thread對(duì)象*/
public class Clock extends java.applet.Applet implements Runnable {
/*聲明一個(gè)Thread對(duì)象*/
Thread threadObj;
/*下面的三個(gè)int變量表示時(shí)鐘上一次顯示時(shí)間的時(shí)、分和秒*/
int oldhours,oldminutes,oldseconds;
/*布爾變量boolVar用于控制時(shí)間的第一次顯示*/
boolean boolVar = true;
/*在start()方法中對(duì)線程對(duì)象進(jìn)行初始化,并啟動(dòng)線程*/
public void start() {
if(threadObj == null) {
/*實(shí)例化一個(gè)線程對(duì)象,線程的名稱為Clock,線程的運(yùn)行目標(biāo)對(duì)象為當(dāng)前類的對(duì)象*/
threadObj = new Thread(this, "Clock");
threadObj.start();
}
}
/*下面的run()方法每過一秒對(duì)當(dāng)前的時(shí)間進(jìn)行刷新*/
public void run() {
while(threadObj != null) {
try {
threadObj.sleep(1000);
} catch(InterruptedException e) {}
/*repaint方法用于時(shí)間的刷新顯示*/
repaint();
}
}
/*paint方法獲得當(dāng)前的時(shí)間并將它顯示出來*/
public void paint(Graphics g) {
Calendar now = Calendar.getInstance();
/*下面的三個(gè)語句用于獲得當(dāng)前時(shí)間的時(shí)、分和秒*/
int hours = now.get(now.HOUR_OF_DAY);
int minutes = now.get(now.MINUTE);
int seconds = now.get(now.SECOND);
//顯示當(dāng)前時(shí)間
g.setColor(Color.black);
g.drawString(hours + ":" + minutes + ":" + seconds, 60, 60);
/*
//下面的if和else語句分別控制時(shí)間的第一次顯示和后續(xù)顯示。
if(boolVar == true){
//第一次顯示時(shí)間時(shí),不必進(jìn)行刷新,直接顯示時(shí)間就可以了
g.setColor(Color.black);
g.drawString(hours + ":" + minutes + ":" + seconds, 60, 60);
boolVar = false;
}
else{
//除了第一次以外,都需要在顯示當(dāng)前時(shí)間之前將上一次時(shí)間顯示去掉
g.setColor(getBackground());
g.drawString(oldhours + ":" + oldminutes + ":" + oldseconds, 60, 60);
g.setColor(Color.black);
g.drawString(hours + ":" + minutes + ":" + seconds, 60, 60);
}
*/
oldhours = hours;
oldminutes = minutes;
oldseconds = seconds;
}
/*update()方法用來刷新圖象*/
public void update(Graphics g) {
paint(g);
}
/*停止線程的運(yùn)行*/
public void stop() {
threadObj = null;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -