?? myclock.java
字號:
import java.applet.Applet;
//import java.applet.AppletContext;
import java.awt.*;
//import java.io.PrintStream;
import java.util.Date; //引入java.util.Date包裹,用來獲取系統(tǒng)時間
public class MyClock extends Applet implements Runnable{ //繼承Applet類,實現(xiàn)Runnable接口
Thread scrollingmessage=null;
Image offScreenImage=null;
Graphics offScreen=null;
Image im=null;
int icount=0;
int hoursAdjust=0;
public void init(){ //調(diào)用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,釋放系統(tǒng)處理資源
scrollingmessage.stop();
}
public static int vectorx(int i,int j) //計算X坐標(biāo)的方法
{
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坐標(biāo)的方法
{
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)//調(diào)用paint方法
{
update(g);
}
public synchronized void update(Graphics g)//調(diào)用update方法,設(shè)置前景
{
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); //實現(xiàn)對時針的繪制
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); //實現(xiàn)對分針的繪制
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; //實現(xiàn)對秒針的繪制
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)); //實現(xiàn)表內(nèi)日期
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);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -