JAVA上機實驗參考_第1頁
JAVA上機實驗參考_第2頁
JAVA上機實驗參考_第3頁
JAVA上機實驗參考_第4頁
JAVA上機實驗參考_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

《JAVA上機實驗參考》目錄實驗一JDK開發(fā)工具 1向生成的源文件中添加代碼 4編譯并運行程序 5構(gòu)建并部署應用程序 6實驗二Java語言基礎 7實驗三控制語句 10實驗四類與對象 11實驗五接口、包與泛型 12實驗六字符串處理 16實驗七異常處理 18實驗八輸入與輸出處理 21實驗九多線程 23實驗十Applet 25實驗十一Swing圖形界面設計 29實驗一JDK開發(fā)工具一、實驗目的

1.熟悉JDK開發(fā)環(huán)境。

2.熟悉NetbeansIDE的使用。

二、實驗內(nèi)容

要學完本教程,您需要具備以下軟件和資源。軟件或資源要求的版本NetBeansIDE版本7.2、7.3、7.4或8.0Java開發(fā)工具包(JDK)版本6、7或8設置項目要創(chuàng)建IDE項目,請執(zhí)行以下操作:啟動NetBeansIDE。在IDE中,選擇"File"(文件)>"NewProject"(新建項目),如下圖所示。在新建項目向?qū)е?,展開"Java"類別,然后選擇"JavaApplication"(Java應用程序),如下圖所示。然后,單擊"Next"(下一步)。在向?qū)У?NameandLocation"(名稱和位置)頁中,執(zhí)行以下操作(如下圖所示):在"ProjectName"(項目名稱)字段中,鍵入HelloWorldApp。將"UseDedicatedFolderforStoringLibraries"(使用專用文件夾存儲庫)復選框保留為取消選中狀態(tài)。在"CreateMainClass"(創(chuàng)建主類)字段中,鍵入helloworldapp.HelloWorldApp。單擊"Finish"(完成)。此時將創(chuàng)建項目并在IDE中打開。此時,您應該看到以下組件:"Projects"(項目)窗口,其中包含項目組件(包括源文件、代碼所依賴的庫等)的樹視圖。源代碼編輯器窗口,其中打開了一個名為HelloWorldApp的文件。"Navigator"(導航器)窗口,可以使用該窗口在選定類內(nèi)部的元素之間快速導航。向生成的源文件中添加代碼由于在新建項目向?qū)е袑ⅰ皠?chuàng)建主類”復選框保留為選中狀態(tài),因此IDE創(chuàng)建了一個框架主類。您可以將"HelloWorld!"消息添加到框架代碼,方法是將以下行://TODOcodeapplicationlogichere替換為以下行:System.out.println("HelloWorld!");通過選擇“文件”>“保存”來保存所做的更改。該文件應與下面的代碼樣例類似。/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/packagehelloworldapp;/****@author<yourname>*/publicclassHelloWorldApp{/***@paramargsthecommandlinearguments*/publicstaticvoidmain(String[]args){System.out.println("HelloWorld!");}}編譯并運行程序由于IDE提供了"CompileonSave"(在保存時編譯)功能,因此您不必手動編譯項目即可在IDE中運行它。保存Java源文件時,IDE會自動編譯它??梢栽?ProjectProperties"(項目屬性)窗口中關閉“在保存時編譯”功能。右鍵單擊項目,選擇"Properties"(屬性)。在"Properties"(屬性)窗口中,選擇"Compiling"(編譯)標簽。"CompileonSave"(在保存時編譯)復選框位于右上方。注:在"ProjectProperties"(項目屬性)窗口可以確認項目的大量設置:項目庫、打包、構(gòu)建、運行等。運行程序:選擇"Run"(運行)>"RunProject"(運行項目)。下圖顯示了您現(xiàn)在應看到的內(nèi)容。恭喜!您的程序可以正常運行!如果存在編譯錯誤,源代碼編輯器的左旁注和右旁注中會以紅色圖標標記出來。左旁注中的圖標指示對應行的錯誤。右旁注中的圖標顯示文件中出現(xiàn)錯誤的所有區(qū)域,其中包括不可見的代碼行中的錯誤。將鼠標懸停在錯誤標記上,可以查看有關該錯誤的描述。單擊右旁注中的圖標,可以跳至出現(xiàn)該錯誤的代碼行。構(gòu)建并部署應用程序編寫并試運行應用程序后,可以使用"CleanandBuild"(清理并構(gòu)建)命令來構(gòu)建應用程序以進行部署。使用"CleanandBuild"(清理并構(gòu)建)命令時,IDE將運行執(zhí)行以下任務的構(gòu)建腳本:刪除所有以前編譯的文件以及其他構(gòu)建輸出。重新編譯應用程序并構(gòu)建包含編譯后的文件的JAR文件。構(gòu)建應用程序:選擇"Run"(運行)>"CleanandBuildProject"(清理并構(gòu)建項目)??梢酝ㄟ^打開"Files"(文件)窗口并展開HelloWorldApp節(jié)點來查看構(gòu)建輸出。編譯后的字節(jié)代碼文件HelloWorldApp.class位于build/classes/helloworldapp子節(jié)點內(nèi)。包含HelloWorldApp.class的可部署JAR文件位于dist節(jié)點內(nèi)?,F(xiàn)在,您已了解如何在IDE中完成一些最常見的編程任務。有關如何從命令行運行應用程序的信息,請參見打包和分發(fā)Java應用程序教程中的啟動Java應用程序一章。實驗二Java語言基礎一、實驗目的

1.掌握標識符的定義規(guī)則。

2.掌握表達式的組成。

3.掌握數(shù)組的定義及使用方法。

4.理解定義變量的作用,掌握定義變量的方法。

5.掌握各種運算符的使用及其優(yōu)先級控制。

二、實驗內(nèi)容

1.運行下面的程序,掌握變量定義與數(shù)據(jù)類型。

importjava.io.*;

publicclassSimpleTypes{

publicstaticvoidmain(Stringargs[]){

byteb=055;

shorts=0x55ff;

inti=1000000;

longl=3615L;

charc=''c'';

floatf=0.23F;

doubled=0.7E-3;

booleanbool=true;

System.out.println("b="+b);

System.out.println("s="+s);

System.out.println("i="+i);

System.out.println("l="+l);

System.out.println("c="+c);

System.out.println("f="+f);

System.out.println("d="+d);

System.out.println("bool="+bool);

}

}

2.運行下面的程序,掌握算術運算。

importjava.io.*;

publicclassArithmaticOp{

publicstaticvoidmain(Stringargs[]){

inta=5+4;

//a=9

intb=a*2;

//b=18

intc=b/4;

//c=4

intd=b-c;

//d=14

inte=-d;

//e=-14

intf=e%4;

//f=-2

doubleg=18.4;

doubleh=g%4;

//h=2.4

inti=3;

intj=i++;

//i=4,j=3

intk=++i;

//i=5,k=5

System.out.println("a="+a);

System.out.println("b="+b);

System.out.println("c="+c);

System.out.println("d="+d);

System.out.println("e="+e);

System.out.println("f="+f);

System.out.println("g="+g);

System.out.println("h="+h);

System.out.println("i="+i);

System.out.println("j="+j);

System.out.println("k="+k);

}

}

3.運行下面的程序,掌握關系運算與邏輯運算

importjava.io.*;

publicclassRelationAndConditionOp2{

publicstaticvoidmain(Stringargs[]){

inta=25,b=3;

booleand=a<b;

//d=false

System.out.println(a+"<"+b+"="+d=;

inte=3;

d=(e!=0&&a/e>5);

System.out.println(e+"!=0&&"+a+"/"+e+">5="+d);

intf=0;

d=(f!=0&&a/f>5);

System.out.println(f+"!=0&&"+a+"/"+f+">5="+d);

d=(f!=0&a/f>5);

System.out.println(f+"!=0&&"+a+"/"+f+">5="+d);

}

}4.編程實現(xiàn)Fibonacci數(shù)列。Fibonacci數(shù)列的定義為:

F1=1,

F2=1,

Fn=Fn-1+Fn-2

(n>=3)

提示:關鍵代碼如下:

f[0]=f[1]=1;

for(i=2;i<10;i++)

f[i]=f[i-1]+f[i-2];

5.編程采用冒泡法實現(xiàn)對數(shù)組元素由小到大排序。

冒泡法排序?qū)ο噜彽膬蓚€元素進行比較,并把小的元素交換到前面。

提示:關鍵代碼如下:

for(i=0;i<intArray.length-1;i++)

for(j=i+1;j<intArray.length;j++)

if(intArray[i]>intArray[j]){

t=intArray[i];intArray[i]=intArray[j];intArray[j]=t;

}

三、思考題

1.定義變量的作用是什么?

2.Java運算符的優(yōu)先級與結(jié)合性是怎樣的?

實驗三控制語句一、實驗目的

1.掌握if語句、if-else-if結(jié)構(gòu)的使用。

2.掌握switch語句的使用。3.掌握使用while語句實現(xiàn)循環(huán)。

4.了解使用do-while語句實現(xiàn)循環(huán)。

5.掌握使用for語句實現(xiàn)循環(huán)。

6.了解continue語句和break語句的使用。

二、實驗內(nèi)容

1.使用簡單if語句編程,從鍵盤鍵入三個整數(shù),然后按照從小到大的順序?qū)⑵漭敵觥?/p>

2.分別使用if-else-if語句和switch語句編程,確定某一月在哪個季節(jié)。3.分別使用while、do-while和for語句編程,求1~100的和。

4.使用continue語句實現(xiàn):將100~300之間的不能被3整除的數(shù)輸出。

5.使用break語句實現(xiàn)記數(shù):從1~100,當數(shù)到78時程序終止。

三、思考題

1.使用if語句實現(xiàn)單分支、兩分支和使用switch語句實現(xiàn)多分支的程序程序結(jié)構(gòu)和流程分別是什么?

2.使用if語句和switch語句都可以實現(xiàn)多分支,它們之間的區(qū)別是什么?

3.使用while、do-while和for語句實現(xiàn)循環(huán)的程序程序結(jié)構(gòu)和流程分別是什么?

4.使用while、do-while和for語句實現(xiàn)循環(huán)的區(qū)別是什么?實驗四類與對象一、實驗目的

1.掌握類的聲明。

2.掌握對象的創(chuàng)建。

3.掌握方法的定義和調(diào)用。

4.掌握構(gòu)造函數(shù)的使用。

二、實驗內(nèi)容

1.編程創(chuàng)建一個Box類,在其中定義三個變量表示一個立方體的長、寬和高,再定義一個方法setDemo對這三個變量進行初始化,然后定義一個方法求立方體的體積。創(chuàng)建一個對象,求給定尺寸的立方體的體積。

2.將上題的方法setDemo改用構(gòu)造函數(shù)實現(xiàn)初始化。

三、思考題

1.一個方法或一個塊內(nèi)定義的變量是否可以在方法外或塊外使用?這種變量稱為什么?方法的形式參數(shù)是否可以在方法之外使用?

2.為什么說構(gòu)造函數(shù)是一種特殊的方法?特殊在哪里?構(gòu)造函數(shù)什么時候執(zhí)行?被誰調(diào)用?

實驗五接口、包與泛型一、實驗目的1.了解Java中包(package)、接口(interface)和抽象類的作用。2.掌握包、接口、抽象類的設計方法。二、實驗內(nèi)容及指導(一)了解并使用Java的系統(tǒng)包1.API包、接口、異常處理的作用包是類和接口的集合。利用包可以把常用的類或功能相似的類放在一個包中。Java語言提供系統(tǒng)包,其中包含了大量的類,可以在編寫Java程序時直接引用它們。所有JavaAPI包都以“java.”開頭,以區(qū)別用戶創(chuàng)建的包。接口解決了Java不支持多重繼承的問題,可以通過實現(xiàn)多個接口達到與多重繼承相同的功能。(二)創(chuàng)建并使用自定義包1.自定義包的聲明方式<package><自定義包名>聲明包語句必須添加在源程序的第一行,表示該程序文件聲明的全部類都屬于這個包。2.創(chuàng)建自定義包Mypackage在存放源程序的文件夾中建立一個子文件夾Mypackage。例如,在“E:\javademo”文件夾之中創(chuàng)建一個與包同名的子文件夾Mypackage(E:\javademo\Mypackage),并將編譯過的class文件放入該文件夾中。注意:包名與文件夾名大小寫要一致。3.在包中創(chuàng)建類(1)YMD.java程序功能:在源程序中,首先聲明使用的包名Mypackage,然后創(chuàng)建YMD類,該類具有計算今年的年份,可以輸出一個帶有年月日的字符串的功能。(2)編寫Ymd.java文件,源代碼如下。packageMypackage;//聲明存放類的包importjava.util.Calendar;//引用java.util包的Calendar類publicclassYmd{privateintyear,month,day;publicstaticvoidmain(String[]arg3){}publicYmd(inty,intm,intd){year=y;month=(((m>=1)&(m<=12))?m:1);day=(((d>=1)&(d<=31))?d:1);}publicYmd(){this(0,0,0);}publicstaticintthisyear(){returnCalendar.getInstance().get(Calendar.YEAR);//返回當年的年份}publicintyear(){returnyear;//返回年份}publicStringtoString(){returnyear+"-"+month+"-"+day;//返回轉(zhuǎn)化為字符串的年-月-日}}(3)編譯Ymd.java文件,然后將Ymd.class文件存放到Mypackage文件夾中。3.編寫使用包Mypackage中Ymd類的程序(1)LianXi5_1.java程序功能:給定某人姓名與出生日期,計算該人年齡,并輸出該人姓名,年齡,出生日期。程序使用了LianXi5_1的方法來計算年齡。(2)編寫LianXi5_1.java程序文件,源代碼如下。importMypackage.Ymd;//引用Mypackage包中的Ymd類publicclassLianXi5_1{privateStringname;privateYmdbirth;publicstaticvoidmain(Stringargs[]){LianXi5_1a=newLianXi5_1("張馳a.output();}publicLianXi5_1(Stringn1,Ymdd1){name=n1;birth=d1;}publicLianXi5_1(Stringn1,inty,intm,intd){this(n1,newYmd(y,m,d));//初始化變量與對象}publicintage()//計算年齡{returnYmd.thisyear()-birth.year();//返回當前年與出生年的差即年齡}publicvoidoutput(){System.out.println("姓名:"+name);System.out.println("出生日期:"+birth.toString());System.out.println("今年年齡:"+age());}}(3)編譯并運行程序,結(jié)果如圖所示。(三)使用接口技術1.接口的定義與作用接口可以看作是沒有實現(xiàn)的方法和常量的集合。接口與抽象類相似,接口中的方法只是做了聲明,而沒有定義任何具體的操作方法。使用接口是為了解決Java語言中不支持多重繼承的問題。(1)定義一個接口Shape2D,利用它來實現(xiàn)二維的幾何形狀類Circle和Rectangle面積計算編寫實現(xiàn)接口的程序文件(2)源代碼:interfaceShape2D{ //定義Shape2D接口 finaldoublepi=3.14; //數(shù)據(jù)成員一定要初始化 publicabstractdoublearea(); //抽象方法,不需要定義處理方式}classCircleimplementsShape2D{ doubleradius; publicCircle(doubler){ //構(gòu)造方法 radius=r; } publicdoublearea(){ return(pi*radius*radius); }}classRectangleimplementsShape2D{ intwidth,height; publicRectangle(intw,inth){ //構(gòu)造方法 width=w; height=h; } publicdoublearea(){ return(width*height); }}publicclassInterfaceTester{ publicstaticvoidmain(Stringargs[]){ Rectanglerect=newRectangle(5,6); System.out.println("Areaofrect="+rect.area()); Circlecir=newCircle(2.0); System.out.println("Areaofcir="+cir.area()); }}實驗六字符串處理 實驗目的掌握String類的常用方法二、實驗內(nèi)容 1.String類的常用方法。實驗要求:編寫一個Java應用程序,判斷兩個字符串是否相同,判斷字符串的前綴、后綴是否和某個字符串相同,按字典順序比較兩個字符串的大小關系,檢索字符串,創(chuàng)建字符串,將數(shù)字型字符串轉(zhuǎn)換為數(shù)字,將字符串存放到數(shù)組中,用字符數(shù)組創(chuàng)建字符串。。程序運行效果示例: 程序運行效果如下圖所示: 程序模板:StringExample.javaclassStringExample{publicstaticvoidmain(Stringargs[]){Strings1=newString("youareastudent"),s2=newString("howareyou");if(【代碼1】)//使用equals方法判斷s1與s2是否相同{System.out.println("s1與s2相同");}else{System.out.println("s1與s2不相同");}Strings3=newString("22030219851022024");if(【代碼2】)//判斷s3的前綴是否是“220302”{System.out.println("吉林省的身份證");}Strings4=newString("你"),s5=newString("我");if(【代碼3】)//按著字典序s4大于s5的表達式。{System.out.println("按字典序s4大于s5");}else{System.out.println("按字典序s4小于s5");}intposition=0;Stringpath="c:\\java\\jsp\\A.java";position=【代碼5】//獲取path中最后出現(xiàn)目錄分隔符號的位置System.out.println("c:\\java\\jsp\\A.java中最后出現(xiàn)\\的位置:"+position);StringfileName=【代碼6】//獲取path中“A.java”子字符串。System.out.println("c:\\java\\jsp\\A.java中含有的文件名:"+fileName);Strings6=newString("100"),s7=newString("123.678");intn1=【代碼7】//將s6轉(zhuǎn)化成int型數(shù)據(jù)。doublen2=【代碼8】//將s7轉(zhuǎn)化成double型數(shù)據(jù)。doublem=n1+n2;System.out.println(m);Strings8=【代碼9】//String調(diào)用valuOf(intn)方法將m轉(zhuǎn)化為字符串對象position=s8.indexOf(".");Stringtemp=s8.substring(position+1);System.out.println("數(shù)字"+m+"有"+temp.length()+"位小數(shù)");Strings9=newString("ABCDEF");chara[]=【代碼10】//將s8存放到數(shù)組a中。for(inti=a.length-1;i>=0;i--){System.out.print(""+a[i]);}}}

三、思考題1.程序中的s6改寫成Strings6=newString(“1a12b”);運行時提示怎樣的錯誤?2.請用數(shù)組a的前3個單元創(chuàng)建一個字符串并輸出該串。3.請給出獲取path中“jsp”子字符串的代碼。實驗七異常處理一、實驗目的

掌握異常的概念以及如何定義、拋出和捕捉處理異常。

二、實驗內(nèi)容

1.運行下面的程序,理解異常的拋出、捕捉與處理。

importjava.io.*;

publicclassExceptionTest{

publicstaticvoidmain(Stringargs[]){

for(inti=0;i<4;i++){

intk;

try{

switch(i){

case0:

//dividedbyzero

intzero=0;

k=911/zero;

break;

case1:

//nullpointer

intb[]=null;

k=b[0];

break;

case2:

//arrayindexoutofbound

intc[]=newint[2];

k=c[9];

break;

case3:

//stringindexoutofbound

charch="abc".charAt(99);

break;

}

}catch(Exceptione){

System.out.println("\nTestcase#"+i+"\n");

System.out.println(e);

}

}

}

}

2.運行下面的程序,理解異常類的常用方法的使用。

importjava.io.*;

publicclassTryTest{

publicTryTest(){

try{

inta[]=newint[2];

a[4]=3;

System.out.println("Afterhandlingexceptionreturnhere?");

}catch(IndexOutOfBoundsExceptione){

System.err.println("exceptionmsg:"+e.getMessage());

System.err.println("exceptionstring:"+e.toString());

e.printStackTrace();

}finally{

System.out.println("");

System.out.println("finally");

}

System.out.println("Noexception?");

}

publicstaticvoidmain(Stringargs[]){

newTryTest();

}

}

三、思考題

1.異常是如何拋出、捕捉和處理的?

2.本實驗的實驗內(nèi)容2中,finally程序塊的作用是什么?實驗八輸入與輸出處理一、實驗目的

1.了解流式輸入輸出的基本原理。

2.掌握類File、FileInputStream、FileOutputStream、RandomAccessFile的使用方法。

二、實驗內(nèi)容

1.運行下面的程序,學習文件和目錄的簡單操作。

//運行前先在當前目錄中建立一個目錄,目錄名為test,向其中隨意放入幾個文件。

importjava.io.*;

publicclassFileOperation{

publicstaticvoidmain(Stringargs[]){

try{

BufferedReaderdin=newBufferedReader(newInputStreamReader(System.in));

Stringsdir="test";

Stringsfile;

FileFdir1=newFile(sdir);

if(Fdir1.exists()&&Fdir1.isDirectory()){

System.out.println("Thereisadirectory"+sdir+"exists.");

for(inti=0;i<Fdir1.list().length;i++)//列出目錄下內(nèi)容

System.out.println((Fdir1.list())[i]);

FileFdir2=newFile("test\\temp");

if(!Fdir2.exists())Fdir2.mkdir();

//創(chuàng)建原不存在的目錄

System.out.println();

System.out.println("Nowthenewlistaftercreateanewdir:");

for(inti=0;i<Fdir1.list().length;i++)//檢查目錄是否已建立

System.out.println((Fdir1.list())[i]);

System.out.println();

System.out.println("Enterafilenameinthisdirectory:");

sfile=din.readLine();

//選取指定目錄下一個文件

FileFfile=newFile(Fdir1,sfile);

if(Ffile.isFile()){

//顯示文件有關信息

System.out.println("File"+Ffile.getName()+"inPath"

+Ffile.getPath()+"is"+Ffile.length()+"inlength.");

}

}else

System.out.println("thedirectorydoesn''texist!");

}//try

catch(Exceptione){

System.out.println(e.toString());

}

}

}

2.創(chuàng)建一個順序文件,向其中寫入部分用戶鍵盤輸入的字符,并回顯在屏幕上。

3.運行下面的程序,學習隨機文件的讀寫

importjava.io.*;

publicclasstestRandom{

publicstaticvoidmain(Stringargs[]){

try{

RandomAccessFilerf=newRandomAccessFile("rtest.dat","rw");

for(inti=0;i<10;i++)rf.writeDouble(i*1.414);

rf.close();

rf=newRandomAccessFile("rtest.dat","rw");

rf.seek(5*8);

rf.writeDouble(47.0001);

rf.close();

rf=newRandomAccessFile("rtest.dat","r");

for(inti=0;i<10;i++)

System.out.println("Value"+i+":"+rf.readDouble());

rf.close();

}catch(IOExceptione){

System.out.println(e.toString());

}

}

}

三、思考題

1.字符流和字節(jié)流的區(qū)別是什么?

2.對文件進行讀寫操作的過程是什么?實驗九多線程一、實驗目的

1.線程的概念、線程的生命周期。

2.多線程的編程:繼承Thread類與使用Runnable接口。

3.使用多線程機制實現(xiàn)動畫。

二、實驗內(nèi)容

1.運行下面的程序,理解用創(chuàng)建Thread子類的方法實現(xiàn)多線程。

classSimpleThreadextendsThread{

publicSimpleThread(Stringstr){

super(str);

}

publicvoidrun(){

for(inti=0;i<10;i++){

System.out.println(i+""+getName());

try{

sleep((int)(Math.random()*1000));

}catch(InterruptedExceptione){}

}

System.out.println("DONE!"+getName());

}

}

publicclassTwoThreadsTest{

publicstaticvoidmain(String[]args){

newSimpleThread("GotoBeijing??").start();

newSimpleThread("Stayhere!!").start();

}

}

2.運行下面的程序,理解用實現(xiàn)Runnable接口的方法實現(xiàn)多線程。

//這是一個時鐘Applet,它顯示當前時間并逐秒進行更新。

importjava.awt.*;

importjava.applet.*;

importjava.util.*;

publicclassClockextendsAppletimplementsRunnable{

ThreadclockThread;

publicvoidstart(){

if(clockThread==null){

clockThread=newThread(this,"Clock");

clockThread.start();

}

}

publicvoidrun(){

while(clockThread!=null){

repaint();

try{

clockThread.sleep(1000);

}catch(InterruptedExceptione){}

}

}

publicvoidpaint(Graphicsg){

Datenow=newDate();

g.drawString(now.getHours()+";"+now.getMinutes()+";"+now.getSeconds(),5,10);

}

publicvoidstop(){

clockThread.stop();

clockThread=null;

}

}

3.利用多線程編程實現(xiàn)一個正在旋轉(zhuǎn)的地球。

三、思考題

1.簡述并區(qū)分程序、進程和線程三個概念。

2.線程有哪幾個基本的狀態(tài)?Java中線程調(diào)度遵循何種原則?

3.實現(xiàn)多線程可以用哪兩種基本方法?將這兩種方法進行比較。實驗十Applet一、實驗目的

1.掌握JavaApplet程序結(jié)構(gòu)和開發(fā)過程

2.了解Applet運行機制

3.學會編寫Applet對應的HTML文件,掌握從HTML文件向Applet傳遞參數(shù)的方法。

4.了解Applet與瀏覽器的通信。

5.掌握在Applet圖形界面設計。

二、實驗內(nèi)容

1.JavaApplet程序開發(fā)過程

(1)打開EditPlus編輯器。

(2)鍵入如下程序:

importjava.awt.Graphics;

importjava.applet.Applet;

publicclassHelloWorld2extendsApplet{

publicvoidpaint(Graphicsg){

g.drawString("HelloWorld!",25,25);

}

}

(3)檢查無誤后(注意大小寫)保存文件,設文件保存在"D:\Java\"目錄中。注意文件名為HelloWorld2.java。

(4)進入命令行(MS-DOS)方式,設定當前目錄為"D:\Java\",運行Java編譯器:

D:\Java>javacHelloWorld2.java

(5)如果輸出錯誤信息,則根據(jù)錯誤信息提示的錯誤所在行返回EditPlus編輯器進行修改。

如果沒有輸出任何信息或者"Deprecation"警告,則認為編譯成功,此時會在當前目錄中生成HelloWorld2.class文件。

(6)EditPlus編輯器中建立新文件。

(7)鍵入如下HTML程序:

<HTML>

<HEAD><TITLE>HelloWorld2</TITLE></HEAD>

<BODY>

<appletcode=HelloWorld2width=300height=200></applet>

</BODY>

</HTML>

(8)檢查后保存文件。文件名HelloWorld2.html,保存在"D:\Java\"目錄中。

(9)直接雙擊這個HTML文件,查看Applet在瀏覽器中的運行結(jié)果?;蛘叽蜷_Web瀏覽器(例如IE4.0),在地址欄中鍵入這個HTML文件的全路徑名(D:\Java\HelloWorld2.html),查看Applet在瀏覽器中的運行結(jié)果。

(10)進入命令行(MS-DOS)方式,并設定當前目錄為"D:\Java\",利用模擬的Applet運行環(huán)境解釋運行這個JavaApplet程序并觀察運行結(jié)果:

D:\Java>AppletviewerHelloWorld2.html

2.運行下面的程序,掌握Applet的生命周期與繪圖周期。

importjava.applet.*;

importjava.awt.*;

publicclassLifeCycleextendsApplet{

privateintInitCnt;

privateintStartCnt;

privateintStopCnt;

privateintDestroyCnt;

privateintPaintCnt;

publicLifeCycle(){//在init()執(zhí)行前執(zhí)行構(gòu)造函數(shù)

InitCnt=0;

StartCnt=0;

StopCnt=0;

DestroyCnt=0;

PaintCnt=0;

}

publicvoidinit(){

resize(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論