歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

javaApplet應(yīng)用程序.ppt

  • 資源ID:11496729       資源大小:587KB        全文頁數(shù):49頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

javaApplet應(yīng)用程序.ppt

2020/4/25,1,Java面向?qū)ο蟪绦蛟O(shè)計ProgramminginJava,2020/4/25,2,第8章Applet應(yīng)用程序,2020/4/25,3,本章總體綱要,小應(yīng)用程序小應(yīng)用程序HTML標記符應(yīng)用程序和小應(yīng)用程序,2020/4/25,4,小應(yīng)用程序,什么是小應(yīng)用程序?類的層次結(jié)構(gòu)JApplet與Applet之間的不同點小應(yīng)用程序的生命周期小應(yīng)用程序的安全性,2020/4/25,5,Applet應(yīng)用程序,又稱為小應(yīng)用程序,是嵌入到瀏覽器中的程序。Applet運行于瀏覽器上,可以生成生動的頁面,進行友好的人機交互,同時還能處理圖像、聲音、動畫等多媒體數(shù)據(jù)。Applet在Java的成長過程中起到了不可估量的作用,到今天Applet依然是Java程序設(shè)計最吸引人的地方之一,2020/4/25,6,8.1Applet基礎(chǔ),JavaApplet是用Java語言編寫的小應(yīng)用程序,這些程序是直接嵌入到頁面中,由支持Java的瀏覽器(IE或Nescape)解釋執(zhí)行,能夠產(chǎn)生特殊效果的程序。它可以大大提高Web頁面的交互能力和動態(tài)執(zhí)行能力。包含Applet的網(wǎng)頁被稱為Java-powered頁,可以稱其為Java支持的網(wǎng)頁。本節(jié)介紹Applet的基礎(chǔ)知識,包括Applet與瀏覽器,查看、顯示Applet以及Applet生命周期。,2020/4/25,7,8.1.1查看Applet,在查看Applet時,可以使用支持Java的Web瀏覽器,或者JDK自帶的AppletViewer瀏覽。其中,在瀏覽器中顯示時,Applet是由嵌入在Web頁面中的Applet相關(guān)HTML標志來運行。Aappletviewer提供了一個Java運行環(huán)境,在其中可測試Applet。appletviewer讀取applet的HTML文件并在一個窗口中運行它們。,2020/4/25,8,2020/4/25,9,8.1.2Applet與瀏覽器,雖然Applet可以在appletviewer中進行查看,但隨著Java的發(fā)展,越來越多的網(wǎng)頁使用到Applet。雖然允許在Web瀏覽器中查看Applet。但是目前有多種瀏覽器版本,有的只支持Java1.0,有的只支持Java1.1,很少有支持Java2.0平臺的。而且,由于歷史原因,在頁面中嵌入Applet產(chǎn)生了幾種相互不兼容的方式,不同的瀏覽器、乃至同一個瀏覽器的不同版本,支持的標簽都不完全相同。,2020/4/25,10,8.1.3顯示Applet,Applet是一種特殊的Java程序,它不能獨立運行。編譯器將Applet源程序編譯成Java字節(jié)碼(Byte-Code)后,在網(wǎng)頁中加載的是Java字節(jié)碼。在網(wǎng)絡(luò)上如果查看包含Java字節(jié)碼的網(wǎng)頁,則Web服務(wù)器將編譯好的Java字節(jié)碼送至客戶端的瀏覽器中執(zhí)行,2020/4/25,11,8.1.4Applet生命周期,Applet的生命周期相對于Application而言較為復(fù)雜。在其生命周期中涉及到Applet類的4個方法(也被JApplet類繼承):init()、start()、stop()和destroy()。Applet的生命周期中有4個狀態(tài):初始態(tài)、運行態(tài)、停止態(tài)和消亡態(tài)。當程序執(zhí)行完init()方法以后,Applet程序就進入了初始態(tài);然后馬上執(zhí)行start()方法,Applet程序進入運行態(tài);當Applet程序所在的瀏覽器圖標化或者轉(zhuǎn)入其他頁面時,該Applet程序馬上執(zhí)行stop()方法,Applet程序進入停止態(tài);在停止態(tài)中,如果瀏覽器又重新裝載該Applet程序所在的頁面,或者瀏覽器從圖標中復(fù)原,則Applet程序馬上調(diào)用start()方法,進入運行態(tài);當然,在停止態(tài)時,如果瀏覽器關(guān)閉,則Applet程序調(diào)用destroy()方法,進入消亡態(tài)。,2020/4/25,12,小應(yīng)用程序的生命周期,所有的小應(yīng)用程序具有如下的五個成員方法:publicvoidinit():在小應(yīng)用程序的生命周期中只會被調(diào)用一次,而且是在第一次加載小應(yīng)用程序時publicvoidstart():當小應(yīng)用程序在啟動或重新啟動時,會調(diào)用此方法publicvoidpaint():繪制小應(yīng)用程序的圖形界面publicvoidstop():當小應(yīng)用程序被圖標化或從當前網(wǎng)頁轉(zhuǎn)到其它網(wǎng)頁時,會調(diào)用此方法publicvoiddestroy():在小應(yīng)用程序的生命周期中只會被調(diào)用一次,而且是在(關(guān)閉網(wǎng)頁之前)卸載小應(yīng)用程序時,2020/4/25,13,小應(yīng)用程序的生命周期,2020/4/25,14,8.2Applet類API,在Applet類中可以實現(xiàn)繪圖等功能,這些都與Applet所繼承的類有關(guān)。在這個繼承體系中,Applet的直接父類Panel是最簡單的容器類,Panel的直接父類Container是一個一般的容器類,Container的直接父類Component是一個具有圖形表示能力的類,其對象可在屏幕上顯示,并可與用戶進行交互。Applet類的主要方法有init()、start()、paint()、repaint()、stop()和destroy()。,2020/4/25,15,8.2Applet類API,小應(yīng)用程序是可以嵌入到HTML(HypertextMarkupLanguage)文件中運行的Java程序一般是java.applet.Applet(或javax.swing.JApplet)的子類通過appletviewer或HTML瀏覽器運行,2020/4/25,16,類的層次結(jié)構(gòu),java.lang.Object|+-java.awt.Component|+-java.awt.Container|+-java.awt.Panel|+-java.applet.Applet|+-javax.swing.JApplet,2020/4/25,17,JApplet與Applet之間的不同點,類JApplet是類java.applet.Applet的子類類JApplet與Swing組件配套默認的布局方式不同JAppletBorderLayout.AppletFlowLayout.往容器JApplet中添加組件必須通過contentPane例如:給小應(yīng)用程序添加組件使用Applet,代碼如下:applet.add(child);使用Japplet,代碼如下:japplet.getContentPane().add(child);,2020/4/25,18,8.3Applet的HTML標記和屬性,由于Applet是需要嵌入在HTML中運行的,所以Applet的調(diào)試和運行都必須和HTML進行協(xié)作。而HTML是超文本標記語言,它通過各種各樣的標記來顯示、編排超文本信息。在HTML中嵌入Applet同樣需要一組約定的特殊標記,2020/4/25,19,8.3Applet的HTML標記和屬性,2020/4/25,20,8.3.1定位屬性,定位屬性只指定Applet位置的屬性,包含WIDTH、HEIGHT和ALIGN。WIDTH和HEIGHT:這2個屬性為必須的,它們定義Applet的大小,均以像素為單位,使用瀏覽器查看Applet時,該數(shù)據(jù)為Applet的初始大小。ALIGN:該屬性定義了Applet的對齊方式。,2020/4/25,21,8.3.2編碼屬性,編碼屬性用來告訴瀏覽器如何定位Applet的代碼,包含code、codebase和archive。1Code:該屬性為必需的屬性。它告訴瀏覽器這個Applet需要用的類文件名,如Myclass.class。該屬性需要與下面提到的codebase進行區(qū)別。code屬性是類名稱,但不是相對于codebase(代碼庫)。如果沒有指定codebase,則該屬性指明的類名相當對當前頁面。如果類在包中,則該屬性應(yīng)標明相對于頁面文件的位置,如chapter08/sample8_1/Sample8_1.class。也許該類中還調(diào)用了其他的類,Applet在運行時會根據(jù)code屬性值自動調(diào)用與該類相關(guān)的類。,2020/4/25,22,8.3.2編碼屬性,2codebase該屬性為可選屬性,用來指明類文件的URL。如果文件Myclass.class位于chapter08/sample8_1/中,而頁面文件位于與chapter08相同的目錄中,則可以使用下面的標記:,2020/4/25,23,標記符Code和Codebase,標記符CODE用來指定小應(yīng)用程序所對應(yīng)的“.class”文件標記符CODEBASE用來指定URL(網(wǎng)絡(luò)資源定位器)標明“.class”所在的位置/路徑示例1:示例2:,2020/4/25,24,8.3.2編碼屬性,3archive該屬性為可選屬性。標明Java存檔文件、包、包含類文件和類相關(guān)的其他文件(即JAR文件)。JAR文件使用逗號隔開,例如:,2020/4/25,25,JAR壓縮文檔和標記符ARCHIVE,將小應(yīng)用程序所需要的所有圖像、聲音以及“.class”文件壓縮成一個JAR壓縮文檔一般可以大大減少加載小應(yīng)用程序的時間每個文件加載需要獨立的HTTP連接許多文件許多次連接許多文件組成一個文件一次連接數(shù)據(jù)被壓縮減少數(shù)據(jù)本身的傳輸時間,2020/4/25,26,示例:(ARCHIVE),javac*.javajar-cvfall.jar*.class,AnappletExample,命令,AppletExample.html,2020/4/25,27,8.3.2編碼屬性,4object該屬性用來指定序列化的Applet對象文件的名字,顯示Applet時對象從文件中反序列化,該屬性非常特殊盡量不要使用該屬性。5name就像每個人都有自己的名字一樣。每個Applet也有自己的名字,這個屬性指明Applet的名字。這樣同一頁面中的Applet或者JavaScript都可以調(diào)用該Applet,該屬性為可選屬性。,2020/4/25,28,8.4創(chuàng)建Applet,使用Applet的HTML文件,由支持Java的網(wǎng)頁瀏覽器下載運行。也可以通過Java開發(fā)工具中的appletviewer來運行。在編寫新的Apple程序時,可以分為帶參數(shù)Applet和不帶參數(shù)Applet,即Applet程序是否向瀏覽器傳遞參數(shù)。,2020/4/25,29,8.4.1簡單Applet,簡單Applet即不向瀏覽器傳遞參數(shù)的Applet。對于所有的Applet來說,其目標是創(chuàng)建與用戶交互的界面,所以Applet需要創(chuàng)建GUI組件,完成圖像、動畫輸入等任務(wù)。創(chuàng)建Applet一般包含如下的步驟。(1)引入需要的類。(2)定義Applet的主類,該類繼承Applet類。(3)重載Applet類中的方法。(4)其他方法。(5)將Applet類添加至HTML代碼中。,2020/4/25,30,8.4.2向Applet傳遞參數(shù),如果Applet需要參數(shù),則編寫時比上一節(jié)的簡單Applet稍微復(fù)雜一些。因為在JavaApplication中,都是通過命令行向main()方法傳遞參數(shù)。但是在Applet中是沒有main()方法的。但是在Applet中,可以在HTML中使用標記定義參數(shù),格式如下所示。,2020/4/25,31,給小應(yīng)用程序傳遞參數(shù),給小應(yīng)用程序傳遞參數(shù),在HTML文件中介于和之間給小應(yīng)用程序傳遞參數(shù),在程序代碼中publicStringgetParameter(Stringname)類java.applet.Applet的成員方法,2020/4/25,32,示例:J_Applet.java,importjava.awt.*;importjavax.swing.*;publicclassJ_AppletextendsJAppletpublicvoidpaint(Graphicsg)Strings=getParameter("TestPara");g.drawString("Valueof"TestPara"is"+s+".",10,50);/方法paint結(jié)束/類J_Applet結(jié)束,AnappletExample,Valueof"TestPara"isTestValue.,J_Applet.java,AppletExample.html,程序輸出,2020/4/25,33,8.5Applet與Application,在本章之前的Java程序,一般都具有一樣的特征:包含main()方法。當類中包含main()方法時,才可以運行,這樣的程序稱之為應(yīng)用(Application)。應(yīng)用程序與本章中所談到的Applet程序是有一定區(qū)別的。應(yīng)用程序可以使用java命令運行。而Applet需要嵌入到HTML頁面中,利用appletviewer命令在appletviewer中顯示。那么既然應(yīng)用程序和Applet程序都由Java語言編寫,那么能不能將兩者整合,使程序既是Applet程序,又是應(yīng)用程序呢?為了達到這樣的目的,首先看二者的區(qū)別在哪里。,2020/4/25,34,8.5Applet與Application,可以編寫一個程序,它既是應(yīng)用程序,又是小應(yīng)用程序。單個“.class”文件既可以按應(yīng)用程序執(zhí)行,又可以按小應(yīng)用程序執(zhí)行,2020/4/25,35,示例:J_List.java,/J_List.java;/同時是應(yīng)用程序與小應(yīng)用程序的圖像顯示例程importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.Image;importjava.io.File;importjavax.imageio.ImageIO;importjavax.swing.event.ListSelectionEvent;importjavax.swing.event.ListSelectionListener;importjavax.swing.Icon;importjavax.swing.ImageIcon;importjavax.swing.JApplet;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JList;publicclassJ_ListextendsJAppletprivateStringm_items="snow.gif","flag.gif","rain.gif"privateJListm_list=newJList(m_items);privateJLabelm_label=newJLabel();privateIconm_icons=newImageIcon3;privateImagem_image=null;Containerm_container=null;,2020/4/25,36,示例:J_List.java,publicvoidinit()inti;if(m_image=null)m_image=newImage3;for(i=0;i<3;i+)m_imagei=getImage(getCodeBase(),m_itemsi);/if結(jié)構(gòu)結(jié)束for(i=0;i<3;i+)m_iconsi=newImageIcon(m_imagei);if(m_container=null)m_container=getContentPane();m_container.setLayout(newBorderLayout();m_container.add(m_list,BorderLayout.WEST);m_list.setSelectedIndex(0);m_list.addListSelectionListener(newListSelectionListener()publicvoidvalueChanged(ListSelectionEvente)ints=m_list.getAnchorSelectionIndex();m_label.setIcon(m_iconss);/方法valueChanged結(jié)束/實現(xiàn)接口ListSelectionListener的內(nèi)部類結(jié)束);/addListSelectionListener方法調(diào)用結(jié)束,2020/4/25,37,示例:J_List.java,m_container.add(m_label,BorderLayout.EAST);m_label.setIcon(m_icons0);/方法init結(jié)束publicstaticvoidmain(Stringargs)JFramef=newJFrame("應(yīng)用程序");J_Listapp=newJ_List();app.m_container=f.getContentPane();app.m_image=newImage3;tryfor(inti=0;i<3;i+)app.m_imagei=ImageIO.read(newFile(app.m_itemsi);catch(Exceptione)System.err.println("發(fā)生異常:"+e);e.printStackTrace();/try-catch結(jié)構(gòu)結(jié)束app.init();f.setSize(250,110);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/方法main結(jié)束/類J_List結(jié)束,2020/4/25,38,示例:AppletExample.html,小應(yīng)用程序例程圖像顯示,2020/4/25,39,編譯,運行)以及行分隔符(如n或rn)之外,Applet找不到與本地計算機有關(guān)的任何信息。特別是,小應(yīng)用程序找不到用戶名、電子郵件地址等。(5)一個小應(yīng)用程序彈出的所有窗口都會發(fā)出一條警告消息。,2020/4/25,45,8.7.2Applet沙箱,Java提供的安全模型即沙箱模型。沙箱是Java編程語言和開發(fā)環(huán)境中的程序區(qū)及規(guī)則,程序員建立當作網(wǎng)頁發(fā)送的Java代碼(Applet)時需要使用它。由于Applet自動當作一部分網(wǎng)頁發(fā)送,并且一到達就運行,如果它允許無限制訪問內(nèi)存和操作系統(tǒng),那么Applet就很容易偶然或故意制造損害。沙箱的限制對Applet可能請求或訪問的系統(tǒng)資源提供了嚴格限制。實際上,程序員必須編寫只在沙箱內(nèi)作用的代碼??砂焉诚湎胂蟪捎嬎銠C內(nèi)Applet代碼可自由作用的一小塊區(qū)域。,2020/4/25,46,8.8實例研究:顯示動畫,動畫是JavaApplet最吸引人的特性之一。如果不用圖像,用Java實現(xiàn)動畫的原理就與放映動畫片相似:在短時間內(nèi)快速地順序顯示圖片。顯示動畫的原理與顯示圖片類似,可以使用Graphics類中的drawImage()方法顯示圖片。因為GIF被分解為多個文件,所以只要順序顯示文件即可達到動畫的效果??梢允褂胷epaint()方法不斷讓Applet顯示新的圖片。本小節(jié)將介紹在Java中編寫動畫的原理,還將介紹關(guān)于畫布重新繪制的問題。,2020/4/25,47,8.8.1動畫原理及重新繪制,1編寫動畫的原理動畫程序其實不難,只要讓程序根據(jù)一定的規(guī)則不斷地對畫布進行重新繪制即可。一般的實現(xiàn)策略是,將繪制的規(guī)則編寫到paint()方法中,定時讓paint()方法重新繪制畫布即可。2重新繪制前面介紹動畫編寫的原理時,涉及到了使用paint()方法進行重繪的問題。要特別注意的是,不能直接調(diào)用paint()方法進行重繪,而應(yīng)該調(diào)用畫布的repaint()方法請求系統(tǒng)執(zhí)行paint()方法進行重繪。,2020/4/25,48,8.8.2Timer類簡介,開發(fā)動畫時經(jīng)常需要定時執(zhí)行指定的任務(wù),可以自己開發(fā)一個線程來實現(xiàn)。如果任務(wù)很簡單,自己開發(fā)線程就不是很合算。為了簡化開發(fā),Swing中專門提供了一個用來定時執(zhí)行任務(wù)的類javax.swing.Timer。使用Timer類來開發(fā)定時執(zhí)行指定任務(wù)的類非常簡單,該類僅提供了一個構(gòu)造器,聲明如下。publicTimer(intdelay,ActionListenerlistener)參數(shù)delay為指定的初始延遲和動作事件間延遲的毫秒數(shù)。參數(shù)listener為指定的初始監(jiān)聽器,可以為null。,2020/4/25,49,8.9小結(jié),Applet能夠帶來更豐富的顯示效果。本章介紹了如何創(chuàng)建Applet,Applet的相關(guān)屬性及安全機制。通過本章的學(xué)習(xí),可以結(jié)合Java的GUI編程,創(chuàng)建出更好的Applet程序。,

注意事項

本文(javaApplet應(yīng)用程序.ppt)為本站會員(tia****nde)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!