分享
 
 
 

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

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有