📄 myclock.java
字号:
import java.applet.Applet;
//import java.applet.AppletContext;
import java.awt.*;
//import java.io.PrintStream;
import java.util.Date; //引入java.util.Date包裹,用来获取系统时间
public class MyClock extends Applet implements Runnable{ //继承Applet类,实现Runnable接口
Thread scrollingmessage=null;
Image offScreenImage=null;
Graphics offScreen=null;
Image im=null;
int icount=0;
int hoursAdjust=0;
public void init(){ //调用init()对Applet自身进行初始化
try
{
offScreenImage=createImage(500,500);
offScreen=offScreenImage.getGraphics();
}
catch(Exception _ex)
{
offScreen=null;
}
im=getImage(getCodeBase(),"MyClock.gif");
}
public void start() //启动Thread线程控制Applet
{
scrollingmessage=new Thread(this);
scrollingmessage.start();
}
public void stop(){ //停止线程,挂起Applet,释放系统处理资源
scrollingmessage.stop();
}
public static int vectorx(int i,int j) //计算X坐标的方法
{
int k=(i+270)%360;
int l=(int)((double)j*Math.cos((double)k*0.017453300000000001D));
return l;
}
public static int vectory(int i,int j) //计算Y坐标的方法
{
int k=(i+270)%360;
int l=(int)((double)j*Math.sin((double)k*0.017453300000000001D));
return l;
}
public void run()
{
Thread.currentThread().setPriority(5);
do
{
System.currentTimeMillis();
try
{
Thread.sleep(1000L);
}
catch(InterruptedException _ex){
}
repaint();
}
while(true);
}
public void paint(Graphics g)//调用paint方法
{
update(g);
}
public synchronized void update(Graphics g)//调用update方法,设置前景
{
if(offScreen!=null)
{
paintApplet(offScreen);
g.drawImage(offScreenImage,10,10,this);
return;
}
else
{
paintApplet(g);
}
}
public void paintApplet(Graphics g)
{
g.drawImage(im,6,26,this);
Date date=new Date();
int i=date.getMinutes();
int j=i*6;
int k=(date.getHours()+hoursAdjust)%24;
if(k>12)
{
k-=12;
}
new Integer(k);
int l=k*30+(i/12)*6;
g.setColor(new Color(0,0,0));
int i2=vectorx(l,18); //实现对时针的绘制
int j2=vectory(l,18);
g.setColor(new Color(0,0,255));
g.drawLine(179,177,180+i2,179+j2);
g.setColor(new Color(0,0,255));
g.drawLine(180,178,180+i2,179+j2);
g.setColor(new Color(0,0,255));
g.drawLine(181,179,180+i2,179+j2);
i2=vectorx(j,25); //实现对分针的绘制
j2=vectory(j,25);
g.setColor(new Color(0,0,255));
g.drawLine(179,177,180+i2,179+j2);
g.setColor(new Color(0,0,255));
g.drawLine(180,178,180+i2,179+j2);
g.setColor(new Color(0,0,255));
g.drawLine(181,179,180+i2,179+j2);
int k2=date.getSeconds()*6; //实现对秒针的绘制
i2=vectorx(k2,25);
j2=vectory(k2,25);
g.setColor(new Color(0,0,255));
g.drawLine(181-i2/3,179-j2/3,180+i2,179+j2);
g.setColor(new Color(0,0,255));
g.drawLine(179-i2/3,177-j2/3,180+i2,179+j2);
g.setColor(new Color(0,0,255));
g.drawLine(180-i2/3,178-j2/3,180+i2,179+j2);
g.drawOval(179,177,2,2);
g.setColor(new Color(0,0,0)); //实现表内日期
g.setFont(new Font("TimesRoman",Font.PLAIN,10));
Date now=new Date();
int s=now.getDay();
int s2=now.getDate();
String s3=new String();
switch(s){
case 1:s3="Mon";break;
case 2:s3="Tue";break;
case 3:s3="wed";break;
case 4:s3="Thu";break;
case 5:s3="Fri";break;
case 6:s3="Sat";break;
case 7:s3="Sun";break;
}
g.drawString(s3+" "+s2,198,185);
g.setFont(new Font("Helvetica",1,14));//显示表外日期
String s4=new String();
s4=k+":"+date.toString().substring(14,19);
g.setColor(new Color(255,0,0));
g.drawString(s4,5,65);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -