网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java的网络功能与编程4.
.利用Java调用可执行命令.
.在Eclipse 3.1中体验J2SE 5.0的新.
.Eclipse的图形化工具加速BTT5.1.
.WebLogic UDDI Client API实例学.
.虚拟机监视器Xen和虚拟化技术(一.
.在JAVA中连接Sybase数据库(例子).
.Java:Web应用下实现定时任务的简.
.让JavaME程序真正Run Anywhere.
.Apache 2.x与WLS7.0集成-Windows.
.javaswing9.27课程.
.Solaris系统管理课程.
.IoC/依赖注入、以及在Spring中的.
.爪哇语言结构性模式之变压器模式.
.JAVA网络编程基础.
.用Java编写扫雷游戏--代码思想.
.Eclipse3.1中体验J2SE 5.0之枚举.
.推技术聊天室的实现(上).
.谈谈J2ME简表.
.toString 方法.

一个经典的JAVA APPLET时钟程序(一)

发表日期:2008-1-5



  转眼间一年又要过了,自己又老了一岁,郁闷啊。趁着还有几分钟才新年,赶紧再发几篇文章,给过去的一年添点东西。


该程序是从网上发现的,是一个简单的时钟显示程序。

代码特色:
时钟代码提供了各种接口,可以在Html文件中设置,变化出多姿多彩的时钟模型,
参数说明见代码内info数组

时钟的绘制采用双缓冲图形处理机制,即先在缓冲区内绘制图形,再把图形显示到网页上可以有效的防止闪烁。

另外时钟的不断绘制是通过一个线程不断读取系统时间,假如时间有变化即绘制。采用一个线程绘制,一个线程处理网页比较符合APPLET设置规范。


代码部分:

import Java.awt.*;
import java.applet.*;
import java.util.*;
import java.net.*;

class Hms extends Date
{
public Hms(double localOffset){ //假如HTML文件中设置了时区,则把时间设为当地时区时间
super();
long tzOffset=getTimezoneOffset()*60L*1000L;
localOffset *= 3600000.0;
setTime(getTime() + tzOffset + (long)localOffset);
}

public Hms(){ //假如没有设置时区,则就使用当地的时间
super();
}

public double get_hours() //时间换算,把如5:30这样的时间换算成5.5
{
return (double)super.getHours()+(double)getMinutes()/60.0;
}
}

abstract class ClockHand //抽象类,提供时针、分针、秒针类使用
{
protected int baseX[], baseY[];
protected int transX[],transY[];
protected int numberOfPoints;

public ClockHand(int originX, int originY, int length,int thickness,int points){
baseX= new int[points]; baseY=new int[points];
transX= new int[points]; transY=new int[points];
initiallizePoints(originX,originY,length,thickness);
numberOfPoints=points;
}

abstract protected void initiallizePoints( int originX,
int originY,
int length,
int thickness);

abstract public void draw(Color color, double angle, Graphics g);

protected void transform(double angle) //通过角度计算出时针、分针、秒针的绘制位置
{
for(int i=0;i<numberOfPoints;i++){
transX[i]=(int)( (baseX[0]-baseX[i]) * Math.cos(angle) -
(baseY[0]-baseY[i]) * Math.sin(angle) +
baseX[0]);

transY[i]=(int)( (baseX[0]-baseX[i]) * Math.sin(angle) +
(baseY[0]-baseY[i]) * Math.cos(angle) +
baseY[0]);
}
}
}

//秒针使用的类
class SweepHand extends ClockHand
{
public SweepHand(int originX,int originY, int length, int points)
{
super(originX,originY,length,0,points);
上一篇:为项目自动添加构建路径 人气:823
下一篇:新手入门:使用 AppFuse 的七个理由 人气:736
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐