国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在中文Windows95環境下用Java設計漢字動畫

2019-11-18 13:35:01
字體:
來源:轉載
供稿:網友

  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)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涿鹿县| 六枝特区| 永州市| 锡林郭勒盟| 湟中县| 锡林郭勒盟| 易门县| 大洼县| 益阳市| 万山特区| 红原县| 会东县| 勃利县| 景谷| 东乡族自治县| 南宫市| 陆河县| 柳河县| 唐山市| 汕尾市| 民权县| 襄汾县| 社旗县| 上虞市| 淅川县| 芦溪县| 德化县| 藁城市| 新巴尔虎左旗| 凤台县| 乳山市| 高州市| 成武县| 木兰县| 三门县| 略阳县| 青浦区| 商水县| 仙桃市| 天等县| 禹城市|