[問(wèn)答題] 下面是一個(gè)Applet程序,其功能是實(shí)現(xiàn)網(wǎng)頁(yè)上的電子時(shí)鐘,要求顯示的格式為hh:mm:ss如02:04:50。提示:通過(guò)獲取當(dāng)前系統(tǒng)時(shí)間來(lái)實(shí)現(xiàn)。請(qǐng)改
[問(wèn)答題] 下面是一個(gè)Applet程序,其功能是實(shí)現(xiàn)網(wǎng)頁(yè)上的電子時(shí)鐘,要求顯示的格式為hh:mm:ss如02:04:50。提示:通過(guò)獲取當(dāng)前系統(tǒng)時(shí)間來(lái)實(shí)現(xiàn)。請(qǐng)改正程序中的錯(cuò)誤(有下劃線的語(yǔ)句),使程序能輸出正確的結(jié)果。
注意:不改動(dòng)程序的結(jié)構(gòu),不得增行或刪行。
程序運(yùn)行結(jié)果如下:
import java.applet.*;
import java.awt.*;
import java.util.Date;
/*
<applet code=”ex9_3.Class”,width;800 height=400>
</applet>
*/
public class ex9_3 extends Applet implements Runnable
private Thread thTimer:null;
private String strTime;
private int tHour,tMin,tSec;
public void init()
setFont(new Font("Times New Roman",Font.BOLD,20));
public void paint(Graphics Graph)
Date dNow = new Date();
tHour = dNow.getHours();
tMin = dNow.getMinutes();
tSec = dNow.getSeconds();
if(tHour<=9)
strTime = "0" + tHour + "
正確答案:StrTime = strTime + "0" + tMin + ":"strTime = StrTime + "0" + tSecnew Thread(this)
參考解析:本題主要考查Java多線程與Applet的圖形繪制相結(jié)合解決實(shí)際問(wèn)題的綜合應(yīng)用。解題關(guān)鍵是熟悉Java多線程的程序設(shè)計(jì)思想,必須在程序中編寫線程類內(nèi)start(),stop()和run()方法的相關(guān)程序,利用線程類的sleep()方法,讓每次顯示的時(shí)間延遲1秒,使電子時(shí)鐘看起來(lái)像是每一秒跳動(dòng)一次的樣子,同時(shí)還要熟悉Data類的getHours()等方法獲得時(shí)間。本題中,包含 2個(gè)線程,一個(gè)是程序中Runnable得到的線程,另一個(gè)是程序本身。第1處和第2處錯(cuò)誤相似,一個(gè)是在不足10的小時(shí)數(shù)的前一位補(bǔ)上“0”,如tHour=9,則顯示出來(lái)的應(yīng)該是“09”;第三處,用Thread類的構(gòu)造方法創(chuàng)建新的線程時(shí),需要把this作為參數(shù)傳遞給新的線程,否則程序不會(huì)動(dòng)態(tài)執(zhí)行。
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。