亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        妙用Java多線程機(jī)制實現(xiàn)多個時區(qū)時鐘顯示

        2013-06-04 07:09:12伍文運
        關(guān)鍵詞:接口繼承對象

        伍文運

        【摘 要】在許多公共場合下,需要提供時鐘顯示,如機(jī)場、火車站、汽車站、酒店等,特別是一些需要接待外賓的場所,處理顯示本地區(qū)時間以外還必須顯示其他時區(qū)時間。本文使用Java多線程機(jī)制實現(xiàn)多個時區(qū)時鐘的顯示。

        【關(guān)鍵詞】類;對象;繼承;接口;多線程機(jī)制

        1.問題描述

        Java多線程機(jī)制實現(xiàn)了異步執(zhí)行環(huán)境,線程間的通信簡單有效,每個線程彼此獨立執(zhí)行,一個程序可以同時使用多個線程來完成不同任務(wù)。依此可實現(xiàn)在窗口中顯示北京時間、格林尼治時間、夏威夷時間和東京時區(qū)四個時區(qū)的時鐘。

        2.問題實現(xiàn)

        定義從Jpanel控件繼承生成clock類并實現(xiàn)Runnable接口。在其構(gòu)造方法中創(chuàng)建線程,通過其中的pain方法畫出當(dāng)前時區(qū)的時鐘信息。在線程的run方法中檢測當(dāng)前CPU上線程是否為自身并讓自身線程睡眠1000個時間單位,在主類DrawingCLock的方法中創(chuàng)建四個clock對象并加入到主類的frame控件中,從而實現(xiàn)四個時區(qū)的時鐘同時顯示。

        3.實現(xiàn)程序代碼

        import java.awt.*;

        import java.awt.event.*;

        import javax.swing.*;

        import java.util.*;

        public class DrawingClock {

        JFrame frame;

        clock panell,panel2,panel3,panel4;

        public static void main(String args[]) {

        DrawingClock dc=new DrawingClock();

        dc.go();

        }

        public void go() {

        frame=new JFrame("時鐘");

        frame.getContentPane().setLayout(null);

        panell=new clock(160,150,"北京時間",0);//線程1畫北京時間時鐘

        frame.getContentPane().add(panell);

        panel2=new clock(400,150,"格林威治時間",-7);////線程2畫北京時間時鐘

        frame.getContentPane().add(panel2);

        panel3=new clock(160,450,"東京時間",1);//線程3畫北京時間時鐘

        frame.getContentPane().add(panel3);

        panel4 = new clock(400,450,"夏威夷時間",-10);//線程4畫北京時間時鐘

        frame.getContentPane().add(panel4);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setSize(600, 650);

        frame.setVisible(true);

        }

        }

        class clock extends JPanel implements Runnable {

        Thread thr1=new Thread(this);

        String text;

        int z;

        Graphics graphics;

        Date currentDate=new Date(); //獲取當(dāng)前日期信息

        String lastdate=currentDate.toString(); //獲取當(dāng)前日期信息的字符串形式

        int xcenter , ycenter; // 時鐘的中心坐標(biāo)值

        int radius=100;// 時鐘的半徑

        void drawCircle()

        {graphics.drawArc(xcenter-radius, ycenter-radius, radius*2, radius*2,0,360);

        for(int i=1;i<=12;i++)//畫表盤數(shù)字

        {int x=xcenter+(int)((radius-15)*Math.sin(i*Math.PI/6));

        int y=ycenter-(int)((radius-15)*Math.cos(i*Math.PI/6));

        String str=""+i;

        graphics.drawString(str,x,y);

        }

        }

        public void paint(Graphics g) {

        graphics=g;

        g.clearRect(xcenter-radius,ycenter-radius,radius*2,radius*2);

        drawCircle();//畫表盤

        int xh, yh, xm, ym, xs, ys;

        //定義變量用于存放當(dāng)前的秒針、分針和時針的末端坐標(biāo)值

        int s,m,h;

        currentDate= new Date(); //獲取當(dāng)前日期信息

        String today=text+":"; //獲取當(dāng)前日期信息的字符串形式

        Calendar nowcal= Calendar.getInstance();

        s=nowcal.get(Calendar.SECOND);//獲取當(dāng)前的秒值

        m=nowcal.get(Calendar.MINUTE);//獲取當(dāng)前的分鐘值

        h=nowcal.get(Calendar.HOUR);//獲取當(dāng)前的小時值

        h+=z;

        nowcal.set(Calendar.HOUR,h);

        today+=nowcal.getTime().toString();

        //獲取當(dāng)前秒針、分針和時針的末端坐標(biāo)值

        xs=(int) (Math.cos(s * Math.PI / 30 - Math.PI / 2) *(radius-10) + xcenter);

        ys=(int) (Math.sin(s * Math.PI / 30 - Math.PI / 2) *(radius-10) + ycenter);

        xm=(int) (Math.cos(m * Math.PI / 30 - Math.PI / 2) * (radius-40) + xcenter);

        ym=(int) (Math.sin(m * Math.PI / 30 - Math.PI / 2) * (radius-40) + ycenter);

        xh=(int) (Math.cos((h*30+m/2) * Math.PI / 180 - Math.PI / 2) * (radius-60)+ xcenter);

        yh=(int) (Math.sin((h*30+m/2) * Math.PI / 180 - Math.PI / 2) * (radius-60)+ ycenter);

        //清除界面,顯示日期信息,并畫秒針、分針和時針

        g.clearRect(xcenter-100, ycenter+radius+2,200,30);

        g.drawString(today, xcenter-100, ycenter+radius+20);

        g.drawLine(xcenter, ycenter, xs, ys);

        g.drawLine(xcenter, ycenter, xm, ym);

        g.drawLine(xcenter, ycenter, xh, yh);

        }

        public void run() {

        Thread me = Thread.currentThread();

        while ((thr1== me)) {//若是本線程則休眠1000個單位后刷新

        try {

        Thread.currentThread().sleep(1000);//當(dāng)前線程休眠1秒

        } catch (InterruptedException e) {

        }

        repaint();//重畫時鐘

        }

        }

        public clock(int x,int y,String s,int zone)

        {

        z=zone;

        text=s;

        xcenter=x;

        ycenter=y;

        setSize(600,800);

        thr1.start();//啟動線程

        }

        }

        4.結(jié)語

        本程序能準(zhǔn)確顯示四個時區(qū)的時間信息,但界面美觀程度不夠??梢岳肑ava的相關(guān)技術(shù)對時鐘界面進(jìn)行修改,使顯示效果更好。

        【參考文獻(xiàn)】

        [1]彭正文主編.Java程序設(shè)計.中國鐵道出版社.

        [2]譚浩強主編.Java程序設(shè)計.清華大學(xué)出版社.

        [3]http://java.sun.com/index.jsp.

        猜你喜歡
        接口繼承對象
        神秘來電
        睿士(2023年2期)2023-03-02 02:01:09
        攻略對象的心思好難猜
        意林(2018年3期)2018-03-02 15:17:24
        某電站工程設(shè)計管理與施工、質(zhì)量控制接口關(guān)系研究
        脫硝數(shù)據(jù)傳輸系統(tǒng)遠(yuǎn)程無線監(jiān)控技術(shù)的研發(fā)與應(yīng)用
        中文信息(2016年10期)2016-12-12 12:56:55
        西門子SPPA—T3000在委內(nèi)瑞拉燃機(jī)電廠中的應(yīng)用與接口
        中國市場(2016年32期)2016-12-06 11:16:14
        基于熵的快速掃描法的FNEA初始對象的生成方法
        淺談杜審言、杜甫的祖孫關(guān)系:推崇、繼承、發(fā)展
        人間(2016年28期)2016-11-10 21:48:10
        淺論紫砂藝術(shù)的繼承與創(chuàng)新
        論電影《暮光之城》的哥特文化
        氣象科技史研究領(lǐng)域又一重要學(xué)術(shù)成果
        a级毛片成人网站免费看 | 中文字幕一区二区va| 少妇高潮精品在线观看| 亚洲人成网网址在线看| 野外性史欧美k8播放| 亚洲中文字幕av天堂| av无码天一区二区一三区| 国产av无码专区亚洲草草| 日本a一区二区三区在线| 蜜臀av一区二区三区久久| 高h纯肉无码视频在线观看| 国产在线精品一区二区不卡| 无码AV午夜福利一区| 国产亚洲专区一区二区| 成年免费a级毛片免费看| 成人免费网站视频www| 国产精品一区二区韩国AV| 国产黑色丝袜在线观看网站91| 久久国产黄色片太色帅| 亚洲av福利无码无一区二区| 国产色噜噜| 日本中文字幕人妻精品| 日本三级香港三级人妇99| 牲欲强的熟妇农村老妇女| 亚洲一区二区三区久久不卡| 亚洲av无吗国产精品| 韩国三级在线观看久| 日韩av无码成人无码免费| 国产精品亚洲专区无码不卡| 久久丝袜熟女av一区二区| 天堂а√在线最新版中文在线 | 国产精品无码精品久久久| 丰满人妻无奈张开双腿av| 国产精品国产高清国产专区| 亚洲日韩成人av无码网站| 亚洲另类激情专区小说婷婷久| 网址视频在线成人亚洲| 免费无码一区二区三区a片百度| 亚洲女人被黑人巨大进入| 人妻人妻少妇在线系列| 日本一区二区三区高清视 |