java實現時鐘

來源:互聯網
上載者:User

標籤:exit   art   phi   extends   logs   final   demo   paint   cep   

package com.js.ai.modules.pointwall.testxfz;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.text.DateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import javax.swing.JFrame;public class ClockDemo extends JFrame implements Runnable{Thread clock;final int Xpoint=180;final int Ypoint=180;final int R=80;int xHour=0,yHour=0,xSecond=0,ySecond=0,xMin=0,yMin=0;public ClockDemo() {super("數字時鐘");setFont(new Font("宋體", Font.BOLD, 20));start();setSize(360, 360);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void start()//開始進程{if(clock==null)//如果進程為空白值{clock=new Thread(this); //執行個體化進程clock.start();//開始進程}}public void run()//運行進程 {while(clock!=null){repaint(); //調用paint方法重繪介面try {Thread.sleep(1000);//線程暫停一秒(1000毫秒)} catch (InterruptedException e) {e.printStackTrace();} }}public void stop()//停止進程{clock=null;}public void paint(Graphics g)//重載組件的paint方法{Graphics2D g2=(Graphics2D) g;//得到Graphics2D對象DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.FULL);Calendar now =new GregorianCalendar();//執行個體化日曆對象now.setTime(new Date());//dateFormat.format(now.getTime())String timeInfo="";//輸出資訊int hour=now.get(Calendar.HOUR_OF_DAY);//得到小時數int minute=now.get(Calendar.MINUTE);//得到分數int second=now.get(Calendar.SECOND);//得到秒數if(hour<=9)timeInfo+="0"+hour+":";//格式化輸出elsetimeInfo+=hour+":";if(minute<=9)timeInfo+="0"+minute+":";elsetimeInfo+=minute+":";if(second<=9)timeInfo+="0"+second+":";elsetimeInfo+=second+":";g.setColor(Color.yellow);//設定使用中色彩為黃色Dimension dim=getSize();//得到視窗尺寸g.fillRect(0, 0, dim.width, dim.height);//填充背景g.setColor(Color.red);//設定使用中色彩g.drawString(timeInfo, 130, 340);//顯示時間字串g.setColor(Color.green);g.drawString(dateFormat.format(now.getTime()),20,60);g.setColor(Color.black);g.setFont(new Font("SAN_SERIF", Font.BOLD, 15));for(int i=0,num=12;i<360;i+=6){double alfa=Math.toRadians(i);int xPox=Xpoint+(int)(R*Math.sin(alfa));int yPos=Ypoint-(int)(R*Math.cos(alfa));if(i==0){if (num%3==0)g.setColor(Color.red); // 數字3,6,9,12為紅色elseg.setColor(Color.black); // 其餘數字為黑色g.drawString(""+num,xPox-5,yPos+3); // 寫數字num=(num+1);}else {g.setColor(Color.black);g.drawString(".",xPox,yPos);}}g.setColor(Color.black);g.fillOval(Xpoint-4,Ypoint-4,8,8);//畫秒針xSecond=(int)(Xpoint+(R-10)*Math.sin(second*(2*Math.PI/60)));ySecond=(int)(Ypoint-(R-10)*Math.cos(second*(2*Math.PI/60)));g.setColor(Color.red);g.drawLine(Xpoint,Ypoint,xSecond,ySecond);//畫分針xMin=(int)(Xpoint+(R-20)*Math.sin((minute+second/60)*(2*Math.PI/60)));yMin=(int)(Ypoint-(R-20)*Math.cos((minute+second/60)*(2*Math.PI/60)));g.setColor(Color.red);g.drawLine(Xpoint,Ypoint,xMin,yMin);//畫時針xHour=(int)(Xpoint+(R-30)*Math.sin((hour+minute/60+second/60/60)*(2*Math.PI/12)));yHour=(int)(Ypoint-(R-30)*Math.cos((hour+minute/60+second/60/60)*(2*Math.PI/12)));g.setColor(Color.red);g.drawLine(Xpoint,Ypoint,xHour,yHour);}public static void main(String[] args){new ClockDemo();}}

  

java實現時鐘

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.