Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 805|回复: 0

java绘图绘制的时钟

[复制链接]

该用户从未签到

发表于 2011-8-5 23:44:16 | 显示全部楼层 |阅读模式
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);
  
}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-4-28 09:02 , Processed in 0.394418 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表