⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myclock.java

📁 使用java applet编的一款手表!
💻 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 + -