网页功能: 加入收藏 设为首页 网站搜索  
Java Applet 入门 20
发表日期:2004-07-27作者:[转贴] 出处:  

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;}


 

我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 Java Applet 入门 20
本类热点文章
  Java读取文件中含有中文的解决办法
  简单加密/解密方法包装, 含encode(),de..
  EJB 3.0规范全新体验
  让Java程序带着JRE一起上路
  java简单的获取windows系统网卡mac地址
  抢先体验"野马"J2SE6.0
  Java连接各种数据库的实例
  JAVA的XML编程实例解析
  Java学习从入门到精通(附FAQ)
  新手必读:Java学习的捷径
  构架Linux环境下Java开发环境
  Java编程思想(24)
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2019 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00769