當前位置:編程學習大全網 - 源碼下載 - 怎麽用JAVA編程實現實時動態運行的模擬時鐘?

怎麽用JAVA編程實現實時動態運行的模擬時鐘?

import java.awt.*;

import java.applet.Applet;

import java.util.Calendar;

import java.text.SimpleDateFormat;

import java.util.Date;

public class ClockApplet extends Applet implements Runnable //Applet支持線程

{

private Thread athread; //線程

private SimpleDateFormat sdateformat; //日期格式

public void init()

{

this.setBackground(Color.white);//背景顏色設為白色

this.athread = null;

}

public void paint(Graphics g)

{

this.sdateformat = new SimpleDateFormat("hh時mm分ss秒");

g.drawString(this.sdateformat.format(new Date()),25,131);

Calendar rightnow = Calendar.getInstance();

int second = rightnow.get(Calendar.SECOND);

int minute = rightnow.get(Calendar.MINUTE);

int hour = rightnow.get(Calendar.HOUR);

//半徑

int R_H = 20,R_M = 4,R_S = 4;

//時針的坐標

//x ====(9-3)[0-6] (3-9)[6-0]

//y ====(12-6)[0-6] (6-12)[6-0]

int H_x ;

int H_y;

//x

if(hour == 0)

{

hour = 12;

}

if( hour >= 3 && hour <= 9 )

{

H_x = R_H*Math.abs(hour - 9);

}

else

{

if(hour > 9)

{

H_x = R_H*Math.abs(hour - 9);

}

else

{

H_x = R_H*Math.abs(hour+3);

}

}

//y

if( hour >= 6 && hour <= 12 )

{

H_y = R_H*Math.abs(hour - 12);

}

else

{

H_y = R_H*hour;

}

//分針的坐標

int M_x;

int M_y;

if(minute == 0)

{

minute = 60;

}

if( minute >= 15 && minute <= 45 )

{

M_x = R_M*Math.abs(minute - 45);

}

else

{

if(minute > 45)

{

M_x = R_M*Math.abs(minute - 45);

}

else

{

M_x = R_M*Math.abs(minute+15);

}

}

//y

if( minute >= 30 && minute < 60 )

{

M_y = R_M*Math.abs(minute - 60);

}

else

{

M_y = R_M*minute;

}

//秒針的坐標

int S_x;

int S_y;

if(second == 0)

{

second = 60;

}

if( second >= 15 && second <= 45 )

{

S_x = R_S*Math.abs(second - 45);

}

else

{

if(second > 45)

{

S_x = R_S*Math.abs(second - 45);

}

else

{

S_x = R_S*Math.abs(second+15);

}

}

//y

if( second >= 30 && second <= 60 )

{

S_y = R_S*Math.abs(second - 60);

}

else

{

S_y = R_S*second;

}

// g.drawString(String.valueOf(second),25,50);

// g.drawString(String.valueOf(minute),25,60);

// g.drawString(String.valueOf(hour),25,70);

// g.drawString(String.valueOf(H_x),25,80);

// g.drawString(String.valueOf(H_y),25,90);

g.drawOval(0,0,120,120);//距離相差10像素

g.setColor(Color.darkGray);

g.drawString("9",5,65);

g.drawString("3",110,65);

g.drawString("12",55,15);

g.drawString("6",55,115);

g.drawString("1",80,20);

g.drawString("2",100,40);

g.drawString("4",100,90);

g.drawString("5",80,110);

g.drawString("7",30,110);

g.drawString("8",10,90);

g.drawString("10",10,40);

g.drawString("11",30,20);

g.setColor(Color.red);

g.drawLine(60,60,H_x,H_y);//前壹個點表示起點,另壹個表示終點

g.setColor(Color.blue);

g.drawLine(60,60,M_x,M_y);

g.setColor(Color.yellow);

g.drawLine(60,60,S_x,S_y);

}

public void start()

{

if(athread == null)

{

athread = new Thread(this);

athread.start();

}

}

public void stop()

{

if(athread != null)

{

athread.interrupt();

athread = null;

}

}

public void run()

{

while(athread != null)

{

repaint();

try

{

athread.sleep(1000);

}

catch(InterruptedException e)

{

}

}

}

}

  • 上一篇:全國地圖高清版大圖片
  • 下一篇:我想開發壹個自己的商城APP去哪家公司好壹點呢(制作自己的app商城)
  • copyright 2024編程學習大全網