Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Java Applet 入门 20

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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



相关文章

相关软件