資源描述:
《第9章 圖形用戶界面》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、1第9章圖形用戶界面鄭莉2目錄9.1Applet概述9.2Applet應(yīng)用程序接口9.3繪圖9.4Swing基礎(chǔ)9.5Swing的特點(diǎn)和概念9.6Swing組件9.7其它Swing特性9.8桌面API9.9本章小結(jié)(說(shuō)明:本章部分例題出自java_tutorial_sun)39.1Applet概述JavaApplet一種嵌入HTML文檔中的Java程序與Application相比,Applet具有明顯的優(yōu)點(diǎn)web瀏覽器提供了運(yùn)行Applet所需要的許多功能Applet是在運(yùn)行時(shí)通過(guò)網(wǎng)絡(luò)從服務(wù)器端下載的,因而便于軟件的發(fā)布和及時(shí)更新Applet也有其局限性,不能在客
2、戶機(jī)上讀寫當(dāng)?shù)匚募膊荒苓B接除它所在的服務(wù)器以外的其它機(jī)器4在瀏覽器中加載一個(gè)Applet,功能是顯示一個(gè)字符串“ThisisaJavaApplet!”importjava.awt.Graphics;importjavax.swing.JApplet;publicclassMyAppletextendsJApplet{publicvoidpaint(Graphicsg){//重載JApplet類的paint方法//參數(shù)是Graphics類的對(duì)象,是由瀏覽器傳遞過(guò)來(lái)的super.paint(g);//調(diào)用其超類JApplet類的paint方法g.drawString
3、("ThisisaJavaApplet!",25,25);}}9.1Applet概述(續(xù))——例9-15在NetBeansIDE中運(yùn)行9.1Applet概述(續(xù))——例9-1運(yùn)行結(jié)果6編譯MyApplet.java產(chǎn)生字節(jié)碼文件MyApplet.class。接下來(lái)就需要編寫一個(gè)HTML文件MyApplet.html來(lái)嵌入MyApplet.class將MyApplet.html文件和MyApplet.class文件放在同一
4、個(gè)目錄下?,F(xiàn)在,在瀏覽器中打開這個(gè)HTML文件,當(dāng)瀏覽器遇到Applet標(biāo)記時(shí),就會(huì)自動(dòng)載入指定的class文件,就會(huì)實(shí)現(xiàn)在屏幕上繪制一串字符的效果9.1Applet概述(續(xù))——例9-1運(yùn)行結(jié)果79.2Applet應(yīng)用程序接口方法調(diào)用時(shí)機(jī)和用途publicvoidinit()當(dāng)瀏覽器(即Applet容器)載入某個(gè)Applet時(shí),容器會(huì)自動(dòng)創(chuàng)建這個(gè)Applet類的一個(gè)實(shí)例,并調(diào)用它的init方法8publicvoidstart()init方法執(zhí)行結(jié)束之后,自動(dòng)調(diào)用這個(gè)方法。另外,當(dāng)瀏覽器用戶在訪問(wèn)另一個(gè)網(wǎng)址之后重新返回applet所在的HTML頁(yè)時(shí),將再次調(diào)用st
5、art方法publicvoidpaint(Graphicsg)start方法啟動(dòng)后調(diào)用此方法,另外每次需要重繪applet時(shí)也將調(diào)用該方法。程序通常不直接調(diào)用paintpublicvoidrepaint()在響應(yīng)用戶和Applet的交互時(shí)經(jīng)常要用到。通常只是調(diào)用,而不重寫這個(gè)方法。對(duì)于輕量級(jí)組件,它調(diào)用組件的paint方法,對(duì)重量級(jí)組件它調(diào)用組件的update方法,由update調(diào)用paintpublicvoidstop()用戶離開Applet所在的HTML頁(yè)時(shí)調(diào)用該方法,它執(zhí)行掛起Applet所需的所有任務(wù),例如停止動(dòng)畫和線程publicvoiddestroy(
6、)用戶關(guān)閉瀏覽器窗口,Applet將從內(nèi)存中移走的時(shí)候調(diào)用該方法9.2Applet應(yīng)用程序接口(續(xù))99.2Applet應(yīng)用程序接口JApplet類JApplet類屬于新的Swing組件一個(gè)applet程序需要繼承javax.swing包中的JApplet類或AWT組件中的Applet類,提供了applet在瀏覽器中運(yùn)行需要具備的特定方法瀏覽器載入時(shí),要依次運(yùn)行init、start、paint方法離開瀏覽器頁(yè)面時(shí),執(zhí)行stop退出瀏覽器時(shí),執(zhí)行destroy提供了所有這些方法的默認(rèn)實(shí)現(xiàn),在編寫applet時(shí),只要繼承這個(gè)JApplet,然后重寫特定的方法來(lái)增加特殊
7、功能10在Japplet窗口中顯示標(biāo)簽importjavax.swing.*;.importjava.awt.*;publicclassHelloSwingAppletextendsJApplet{publicvoidinit(){JLabellabel=newJLabel("YouaresuccessfullyrunningaSwingapplet!");label.setHorizontalAlignment(JLabel.CENTER);label.setBorder(BorderFactory.createMatteBorder(1,1,2,2,Color
8、.blac