資源簡介
用java寫的一個數字時鐘,彈出的窗口用于顯示當前系統(tǒng)時間,使用液晶字體顯示時間,效果更炫
這個小案例匯集了眾多java功能,圖形用戶編程、多線程等

代碼片段和文件信息
/**
?*@author?side
?*@date?2010年10月14日
?*@function?自動彈出一個小窗口,窗口中顯示當前系統(tǒng)時間,顯示格式為
?* “時:分:秒”,使用液晶數字字體顯示
?*/
import?java.awt.Color;
import?java.awt.Font;
import?java.util.*;
import?java.awt.Graphics;
import?javax.swing.*;
//創(chuàng)建主窗口
public?class?DigitalClock?extends?Jframe{
//定義一個面板對象
ClockArea?ca=null;
//定義構造函數,初始化
public?DigitalClock(){
//創(chuàng)建一個面板對象,內容是數字時鐘
ca=new?ClockArea();
//創(chuàng)建一個時鐘線程,使得時鐘能按照秒針跳動
Thread?t=new?Thread(ca);
//啟動線程
t.start();
//將時鐘添加到主窗口中
this.add(ca);
//初始化主窗口
this.setSize(290100);
this.settitle(“現(xiàn)在時刻...“);
this.setLocation(200150);
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(false);
}
public?static?void?main(String[]?args)?{
//創(chuàng)建一個主窗口,顯示面板中的時鐘
DigitalClock?clock=new?DigitalClock();
}
}
//時鐘區(qū)域類,用于顯示時鐘
class?ClockArea?extends?JPanel?implements?Runnable{
//該類的對象用于存取當前系統(tǒng)時間
Calendar?cal=null;
//控制時鐘在面板中顯示的位置
int?x;
int?y;
//定義三個變量,用于接收當前系統(tǒng)時間(分別是時分秒)
private?int?hour=0;
private?int?minute=0;
private?int?second=0;
//定義三個字符串,用于后面的畫圖參數
String?sHour=“0“;
String?sMinute=“0“;
String?sSecond=“0“;
//構造函數,用于初始化時鐘面板
public?ClockArea(){
//指定時鐘出現(xiàn)的位置
this.x=12;
this.y=62;
//獲取初始化時的系統(tǒng)時間
cal=Calendar.getInstance();
hour=cal.get(Calendar.HOUR_OF_DAY);
minute=cal.get(Calendar.MINUTE);
second=cal.get(Calendar.SECOND);
//下面一串if-else語句用于控制時鐘顯示的格式。使得個位數能以兩位出現(xiàn)
if(hour<10){
sHour=“0“+String.valueOf(hour);
}else{
sHour=String.valueOf(hour);
}
if(minute<10){
sMinute=“0“+String.valueOf(minute);
}else{
sMinute=String.valueOf(minute);
}
if(second<10){
sSecond=“0“+String.valueOf(second);
}else{
sSecond=String.valueOf(second);
}
}
//畫圖函數
public?void?paint(Graphics?g){
//調用父類構造函數進行初始化
super.paint(g);
//設定畫筆顏色
g.setColor(Color.blue);
//設定所繪制數字的字體
g.setFont(new?Font(“DS-Digital“Font.PLAIN80));
//在相應位置畫出時分秒
g.drawString(sHour?x?y);
g.drawString(“:“x+60y-5);
g.drawString(sMinutex+80y);
g.drawString(“:“x+165y-5);
g.drawString(sSecondx+185y);
}
//重寫Runnable接口方法
@Override
public?void?run()?{
try?{
Thread.sleep(1000);
}?catch?(Exception?e)?{
e.printStackTrace();
}
//刷新時間
while(true){
//獲取當前系統(tǒng)時間
cal=Calendar.getInstance();
hour=cal.get(Calendar.HOUR_OF_DAY);
minute=cal.get(Calendar.MINUTE);
second=cal.get(Calendar.SECOND);
if(hour<10){
sHour=“0“+String.valueOf(hour);
}else{
sHour=String.valueOf(hour);
}
if(minute<10){
sMinute=“0“+String.valueOf(minute);
}else{
sMinute=String.valueOf(minute);
}
if(second<10){
sSecond=“0“+String.valueOf(second);
}else{
sSecond=String.valueOf(second);
}
//重繪時鐘
this.repaint();
//設置刷新時間間隔
try?{
Thread.sleep(500);
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????24448??1999-02-01?10:06??DS-DIGI.TTF
?????文件???????3360??2010-10-14?14:07??DigitalClock.java
-----------?---------??----------?-----??----
????????????????27808????????????????????2
評論
共有 條評論