当前位置: 首页 > 学习 > 电脑学习 > 程序设计 > JAVA > APPLET与SWING > 正文

在中文Windows95环境下用Java设计汉字动画

http://www.zk168.com.cn  招考学习网 2006-4-11 1:17:58
-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
Java语言是目前为止最新、推广最快的一种新型面向对象程序设计语言,由于Java具有面向对象、平台无关性、稳固性与安全性、多线程等特性,从而为用户提供了一个良好的程序设计环境。它利用面向对象方法,提供了一组用于图形用户界面(GUI)开发的类,这些类包含在抽象窗口工具集(Abstract Windows Toolkit,简称AWT)中。利用这些类,我们可以非常方便地设计出与平台无关、界面友好的应用程序。但由于Java目前还不支持汉字,因此我们选用支持Java语言的中文Windows 95平台来设计汉字动画程序。下面即是一个简单的示例程序。

我们知道,Java设计的程序分为两种:一类是由Java解释器解释执行的Java应用;另一类是必须嵌入到Web页中,由Java兼容浏览器(如:Sun公司的Hotjava、Netscape的Navigator)来控制执行的JavaApplet;下面的程序即是一个必须嵌入到Web页中的Applet。Applet有其固定的程序框架。它要求在主事件中至少实现下列五种方法之一:
初始化方法init():创建对象、设置初始状态、参数等
启动方法start():启动Applet开始运行
停止方法stop():停止Applet运行
删除方法destroy():杀死Applet所有正在运行的线程,释放对象
绘制方法paint():在屏幕上显示信息

在本例Applet中,实现了start()、stop和paint()三种方法。
在实际应用中,应用程序往往需要同时处理多个事件,如,一方面进行图形显示,另一方面接收用户输入。在不支持多线程的情况下,我们只能依次完成每个事件。在支持多线程的Java中,就可以创建一个线程专门用来进行图形显示,而在主事件中接收用户输入,两者并发执行。创建线程必须实现线程类(Thread)的run()方法,运行系统通过调用run()方法来实现线程的行为。

下面,我们来看例子程序myAnimator.java。在Java中,没有类就无法运行程序。我们建立了一个Applet类的子类myAnimator,并实现了Runnable界面。实现Runnable界面的目的是为了创建线程。线程体定义在run()方法中,循环地调用repaint()方法,然后调用sleep()方法使线程睡眠delayTime时间。睡眠时间到,线程又被唤醒,再次执行循环体。repaint()方法调用了paint()方法。在paint()方法中,先设置字型及大小,再根据变量flag值为0、1、2、3,设置颜色为红、绿、黄、蓝四种颜色之一。调用draw?String()方法在屏幕上输出汉字串。然后使flag值加一。若falg大于3,把flag置为0。程序开始执行时,先启动start()方法,在start()方法中启动线程,在屏幕上以红、绿、黄、蓝四种颜色循环显示汉字串,实现了动画显示。

为了运行这个Applet,必须把它嵌入到Web页中。我们编写了一个简单的HTML文件myAnimator.html。CODE属性指定Applet的文件名为myAnimator.class。WIDTH和HEIGHT分别指定了Applet的显示宽度和高度。然后在中文Windows95的DOS模式下,用如下命令来编译:
c:\hotjava\bin\javacmyAnimator.java

编译通过后,生成myAnimator.class字节码文件。这时即可用浏览Applet的工具appletviewer来浏览该HTML,命令如下:
c:\hotjava\bin\appletviewermyAnimator.html
需要注意的一点是,在支持长文件名的Windows95下,保留大小写但不区分大小写。而Java是区分大小写的,而且文件名需与类名相同。
源程序myAnimator.java
//汉字动画APPLET
//WritedbyLJY1997.6.20

importjava.awt. :
publicclassmyAnimatorextendsjava.applet.AppletimplementsRunnable
{intdelayTime=100;//线程睡眠时间
intflag=0;
Threadanimator;//定义线程
Fontf=newFont(″TimesRoman″,Font.BOLD,48);//创建字型类实例
Stringname=″汉字动画演示″;
publicvoidstart()
{animator=newThread(this);//创建线程

animator.start();//启动线程}
publicvoidrun()//线程体
{while(animator!=null)//如果线程已创建,循环执行
{repaint();//向屏幕输出
try{
Thread.sleep(delayTime);//线程睡眠

}catch(InterruptedExceptione){
break;}
}}
publicvoidstop()
{animator.stop();//停止线程
animator=null;}
publicvoidpaint(Graphicsg)
{g.setFont(f);//设置字型及大小

switch(flag)

case0:g.setColor(Color.red);
break;
case1:g.setColor(Color.green);
break;
case2:g.setColor(Color.yellow);
break;
case3:g.setColor(Color.blue);
break;

g.drawString(this.name,5,50);
flag++;
if(flag>3)flag=0;
}}
HTML文件:myAnimator.html
〈appletcode=myAnimator.classwidth=300height=80〉
〈/applet〉
-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
最新入库:
 
·实质、过程及意义——阿多尔诺“否定的辩证法”探微
·从Ontology的译名之争看哲学术语的翻译原则
·论马克思主义哲学经典的解释——解释学方法及其在马克
·中国哲学当前的核心与周边问题
·和合学与21世纪文化价值和科技
·中国文化的和合精神与21世纪
·宗教之间理当相互宽容
·上半个世纪的自由主义
·殷周至春秋时期神人关系之演进
·大学之道:构建以“三纲八目”为核心的道德修养体系
相关内容:
 
·环保企业人力资源开发与管理的实证研究————巨龙公
·重油制气污水处理系统(A/O)技术改造
·英美CPA管理模式及其启示
·改造NERA微波公务信道为国产监控信道
·EAStudio让电子商务网站如虎添翼
·基于PB6和ORACLE8开发“劳动信息管理系统”
·巧解Pretty  Park 病毒一例
·CDMA在中国的应用以及向CDMA2000的过度中的问题研究
·SMA施工控制与现场监理
·浅谈改性沥青及SMA路面平整度的控制
网友点评:
 
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
友情提醒:
 1.库中的资料大都来自互联网、网友上传、各类书籍,在录入的过程中难免会出现错误,恳请网
 友来信指正!
 2.如果网友在本库中未能找到所需要的材料,请登陆到我们的论坛《招考学习网》版块!
 3.考友想加入招考学习网的编辑部,请发信到XueXiWang#Gmail.com(#改为@)附带个人简历
 4.如需转载请注明出处及作者,谢谢合作!
 5.如果您有更好的建议或意见请EMAIL:XueXiWang#Gmail.com (#改为@)
 6.凡标题中有注有“[NO]”字样均不含答案且答案整理中.
 7.如本库中转载文章涉及版权等问题,请相关网站或作者在两周内发邮件通知(EMAIL:  XueXiWang#Gmail.com (#改为@))我们,我们接到通知后立即删除该文章及链接!
你问我答 更多>>