亚洲免费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ù)成果
        国产成人精品男人的天堂网站| 日本天堂免费观看| 蜜桃av抽搐高潮一区二区| 又粗又大又黄又爽的免费视频| 日本免费一区二区三区在线看| 丰满人妻一区二区三区精品高清| 成人偷拍自拍视频在线观看 | 天天综合天天色| 东京道一本热码加勒比小泽| 中文字幕日韩有码在线| 国产亚洲日韩在线一区二区三区 | 亚洲精品理论电影在线观看| 国产一级一片内射视频在线| 国产在线播放一区二区不卡| 国产精品久久久久久亚洲av| 亚洲不卡无码高清视频| 精品蜜桃在线观看一区二区三区| 多毛小伙内射老太婆| 久久不见久久见免费影院www| 偷亚洲偷国产欧美高清| 日韩女优在线一区二区| 国色天香社区视频在线| 欧美人与动人物姣配xxxx| 人妻少妇一区二区三区| 国产免费网站在线观看不卡| 人妻少妇久久久久久97人妻| 无码夜色一区二区三区| 一本大道久久精品一本大道久久 | 人人妻人人澡av天堂香蕉| 日韩女优中文字幕在线| 45岁妇女草逼视频播放| 亚洲老妈激情一区二区三区| 无码一区久久久久久久绯色AV| 91人妻一区二区三区蜜臀| 国产精品白浆在线观看免费| 欧美午夜一区二区福利视频| 中文字幕精品永久在线| 蜜桃精品人妻一区二区三区| 福利体验试看120秒| 国产精品原创永久在线观看| 玖玖资源站亚洲最大的网站|