A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夕阳游子 中级黑马   /  2015-9-6 23:01  /  480 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JPanel;
public class Paint extends Frame implements Runnable{
private int   hour , minute, second;   
private int i=0;
private int j=0;
private int l=0;
private int x0=300;
private int y0=300;
Thread runner;
public void paint(Graphics g){
  long starttime=System.currentTimeMillis();
  starttime=(long)starttime/1000;
  second = (int) (starttime% 60);   
  starttime = (int)starttime / 60;   
     minute = (int)(starttime% 60)-15;   
     starttime= (int)(starttime)/60;   
     hour=(int)(starttime%12)+5;
     g.setColor(Color.blue);
     g.fillOval(200-10, 200-10, 220, 220);
     g.setColor(Color.black);
  g.fillOval(200, 200, 200, 200);
  g.setColor(Color.CYAN);
  g.fillOval(300-05,300-70,10,20);
  g.setColor(Color.white);
  for(int k=0;k<=60;k++){
   if(k%15==0){
   g.drawLine((int)(x0+(85*Math.cos((Math.PI)*k/30))),(int)(y0-(85*Math.sin(Math.PI*k/30))),(int)(x0+(100*Math.cos((Math.PI)*k/30))),(int)(y0-(100*Math.sin(Math.PI*k/30))));
   }else if(k%5==0){
    g.drawLine((int)(x0+(90*Math.cos((Math.PI)*k/30))),(int)(y0-(90*Math.sin(Math.PI*k/30))),(int)(x0+(100*Math.cos((Math.PI)*k/30))),(int)(y0-(100*Math.sin(Math.PI*k/30))));
   }
   else {g.drawLine((int)(x0+(97*Math.cos((Math.PI)*k/30))),(int)(y0-(97*Math.sin(Math.PI*k/30))),(int)(x0+(100*Math.cos((Math.PI)*k/30))),(int)(y0-(100*Math.sin(Math.PI*k/30))));
  }
   }
  g.drawLine(x0,y0,(int)(x0+(80*Math.cos((-Math.PI)*(second)/30))),(int)(y0-(80*Math.sin(-Math.PI*(second)/30))));
  g.drawLine(x0,y0,(int)(x0+(65*Math.cos(-Math.PI*minute/30))),(int)(y0-(65*Math.sin(-Math.PI*minute/30))));
  g.drawLine(x0,y0,(int)(x0+(45*Math.cos(-Math.PI*(hour*5+minute/12+1)/30))),(int)(y0-(45*Math.sin(-Math.PI*(5*hour+minute/12+1)/30))));
  }

public void run(){
  while(true){
   for(j=0;j<=60;j++){
    for(i=0;i<61;i++){
    repaint();
    try
    {
     Thread.sleep(1000);
    }catch(Exception   e){}
    }
   }
   l++;
  }
  
}
public Paint(String title){
  super(title);
  setSize(600,600);
  setBackground(Color.yellow);
  this.addWindowListener(new WindowAdapter()
  { public void windowClosing(WindowEvent e) { System.exit(0); } });   
  runner=new Thread(this);
  runner.start();
  }

public static void main(String[] args ){
  Paint frame=new Paint("时钟");
  frame.setVisible(true);
  
}
}

1 个回复

倒序浏览
光看代码好像很牛逼的样子
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马