標籤: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實現時鐘