会员: 密码:  免费注册 | 忘记密码 | 会员登录 网页功能: 加入收藏 设为首页 网站搜索  
技术文档 > JAVA
Java Applet 入门 20
发表日期:2004-07-27 18:05:40作者: 出处:  

Java Applet 入门

yy435

太平洋网络学院

第五天

一个时钟的例子

源代码如下:

import java.awt.*;import java.applet.*;import java.util.Date;   //这是Java中的低级实用工具包,可以处理时间等内容。public class Applet1 extends Applet implements Runnable   //有线程运行接口{		Date timenow;     //Date是一个时间定义与创建函数.	Clock myClock;    //用户自定义的类	Thread clockthread=null;   //设置一个线程			public void start()     //线程开始的类	{		if (clockthread==null) //如果线程为空,则		{			clockthread=new Thread (this);  //开始新的线程			clockthread.start();            //开始		}	}		public void stop()            //终止线程	{		clockthread.stop();   //终止线程,使它		clockthread=null;     //为空	}		public void run()             //运行线程	{		while(true)           //一个死循环,条件永远都是真的。		{			repaint();        //重新绘制界面			try{Thread.sleep(1000);}    //让线程沉睡1000毫秒,也就是一秒钟			catch(InterruptedException e){} //捕获异常(也就是错误)		}	}			public void paint(Graphics g)	{		timenow=new Date();     //新的时间的获得					//获得小时,分钟,秒钟		myClock=new Clock(timenow.getHours (),							timenow.getMinutes (),							timenow.getSeconds ());		g.drawString(timenow.toString(),25,240);//将它打印出来!		myClock.show(g,100,100,100);            //使面板显示		}}class Clock        //用户自定义的类开始,编译后,它单独成为一个CLASS文件{	Clock(int hrs,int min,int sec)  //类函数入口	{		hour=hrs%12;            //将原始数据处理,得到小时		minute=min;             //将原始数据处理,得到分钟		second=sec;             //将原始数据处理,得到小时	}	void show(Graphics g,int cx,int cy,int rad)  //重新定义SHOW函数	{		int hrs_len=(int)(rad*0.5),       //时针的长度			min_len=(int)(rad*0.6),   //分钟的长度			sec_len=(int)(rad*0.9);   //秒钟的长度		double theta;		//画出钟面		g.drawOval(cx-rad,cy-rad,rad*2,rad*2);		//画出时针		theta=(double)(hour*60*60+minute*60+second)/43200.0*2.0*Math.PI ;		drawNiddle(g,Color.blue,cx,cy,hrs_len,theta);		//画出分针		theta=(double)(minute*60+second)/3600.0*2.0*Math.PI ;		drawNiddle(g,Color.red,cx,cy,sec_len,theta);		//画出秒针		theta=(double)(second)/60.0*2.0*Math.PI ;		drawNiddle(g,Color.green ,cx,cy,sec_len,theta);	}	private void drawNiddle(Graphics g,Color c,int x,int y,int len,double theta)	{		int ex=(int)(x+len*Math.sin(theta));		int ey=(int)(y-len*Math.cos(theta));		g.setColor (c);		g.drawLine(x,y,ex,ey);	}	int hour,minute,second;}


 

返回顶部】 【打印本页】 【关闭窗口

关于我们 / 给我留言 / 版权举报 / 意见建议 / 网站编程QQ群   
Copyright ©2003- 2024 Lihuasoft.net webmaster(at)lihuasoft.net 加载时间 0.00338