Java編程——數字時鍾


 1 //ClockDemo.java
 2 
 3 /*
 4 * To change this license header, choose License Headers in Project Properties.
 5 * To change this template file, choose Tools | Templates
 6 * and open the template in the editor.
 7 */
 8 package newpackage;
 9 import java.awt.*;
10 import java.util.*;
11 import javax.swing.*;
12 
13 //數字時鍾
14 public class ClockDemo extends JFrame implements Runnable{
15 Thread clock;    
16 
17 public ClockDemo(){
18 super("數字時鍾");    //調用父類構造函數    
19 setFont(new Font("Times New Roman",Font.BOLD,60));    //設置時鍾的顯示字體
20 start(); //開始進程
21 setSize(280,100); //設置窗口尺寸
22 setVisible(true); //窗口可視
23 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口時退出程序
24 }
25 
26 public void start(){ //開始進程
27 if (clock==null){ //如果進程為空值
28 clock=new Thread(this); //實例化進程
29 clock.start(); //開始進程
30 }
31 }
32 
33 public void run(){ //運行進程
34 while (clock!=null){ 
35 repaint(); //調用paint方法重繪界面
36 try{
37 Thread.sleep(1000); //線程暫停一秒(1000毫秒)
38 }
39 catch (InterruptedException ex){
40 ex.printStackTrace(); //輸出出錯信息
41 }
42 }    
43 }
44 
45 public void stop(){ //停止進程
46 clock=null;
47 }
48 
49 public void paint(Graphics g){ //重載組件的paint方法
50 Graphics2D g2=(Graphics2D)g; //得到Graphics2D對象
51 Calendar now=new GregorianCalendar(); //實例化日歷對象
52 String timeInfo=""; //輸出信息
53 int hour=now.get(Calendar.HOUR_OF_DAY); //得到小時數
54 int minute=now.get(Calendar.MINUTE); //得到分數
55 int second=now.get(Calendar.SECOND); //得到秒數
56 
57 if (hour<=9) 
58 timeInfo+="0"+hour+":"; //格式化輸出
59 else 
60 timeInfo+=hour+":";
61 if (minute<=9)
62 timeInfo+="0"+minute+":";
63 else
64 timeInfo+=minute+":";
65 if (second<=9)
66 timeInfo+="0"+second;
67 else
68 timeInfo+=second;
69 
70 g.setColor(Color.white); //設置當前顏色為白色
71 Dimension dim=getSize(); //得到窗口尺寸
72 g.fillRect(0,0,dim.width,dim.height); //填充背景色為白色
73 g.setColor(Color.orange); //設置當前顏色為橙色
74 g.drawString(timeInfo,20,80); //顯示時間字符串
75 }
76 
77 public static void main(String[] args){
78 new ClockDemo();
79 }
80 }
源代碼:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM