新聞中心
Java Applet運(yùn)行的就像一個(gè)由Java Web Start啟動的應(yīng)用。參數(shù)jnlp_href在Web頁面和Java Applet的JNLP描述之間起到了橋接的作用。在如寬度與高度這樣的特定方面,Applet標(biāo)簽與JNLP文件具有重疊的機(jī)制。

一般地,你應(yīng)該使用Deployment Toolkit,這也是一個(gè)出現(xiàn)在Java SE 6 Update 10中的新工具,它能自動地為Applet標(biāo)簽生成HTML。部署建議指南展示了如何使用Deployment Toolkit簡便地發(fā)布Applet。
兼容性
現(xiàn)在可更容易維護(hù)向后兼容性。你可創(chuàng)建運(yùn)行在更早Java插件版本上的程序,但僅需提供一個(gè)與jnlp_href參數(shù)一樣的格式完整的
World Wind Applet示例
由World Wind Java開發(fā)組創(chuàng)建的NASA World Wind Java Applet示例闡述了如果發(fā)布像NASA World Wind Java這樣的領(lǐng)先類庫。同樣地,也用示例說明了如何使用JavaScript在Web頁面中高效地整合HTML和Applet內(nèi)容。
Figure 2. NASA World Wind Applet
該Web頁面包含了關(guān)于喀斯喀特山脈的信息(要感謝維基百科),并且將World Wind Java作為一個(gè)Applet嵌入其中,以圖示該山脈中各山的位置。
- code="gov.nasa.worldwind.examples.applet.WWJApplet"
- archive="BackwardCompatibility.jar">
WWJApplet隨標(biāo)準(zhǔn)的World Wind Java發(fā)行包發(fā)布。如下所述,你可選擇編寫你自己的Applet類并將World Wind嵌入其中:
下面是WWJApplet.jnlp文件中相關(guān)的部分:
- href="http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp" />
- main-class="gov.nasa.worldwind.examples.applet.WWJApplet"
- width="100"
- height="100">
注意幾點(diǎn):
在本例中,worldwind.jar作為主類使用。理想地,從NASA的網(wǎng)站引用它,將其作為一個(gè)JNLP擴(kuò)展,這就使得許多不同的都嵌入了World Wind的應(yīng)用程序或Applet共享相同的jar文件。詳情請見下面的內(nèi)容。
為了它的硬件加速的3D圖形,World Wind Java使用了針對OpenGL API的Java綁定,JOGL。注意,JOGL JNLP擴(kuò)展僅使用一行代碼與應(yīng)用程序進(jìn)行結(jié)合。也要注意,在Windows平臺上,由于OpenGL API與DirectDraw/Direct3D API(該API用于Windows平臺默認(rèn)的Java 2D實(shí)現(xiàn))之間在驅(qū)動層面的沖突,需要指定系統(tǒng)參數(shù)-Dsun.java2d.noddraw=true。Windows平臺上所有使用JOGL的應(yīng)用程序與Applet程序都需要該系統(tǒng)參數(shù)。
Web頁面中的HTML鏈接調(diào)用JavaScript函數(shù),該函數(shù)會與Applet進(jìn)行交互并將其導(dǎo)向合適的山峰。下面是這些鏈接中的一個(gè):
- Mount Rainier
- (southeast of Tacoma, Washington)
當(dāng)點(diǎn)擊該鏈接后,將會調(diào)用JavaScript函數(shù)gotoLocation。該函數(shù)定義在同一個(gè)Web頁面中:
- function gotoLocation(locationString) {
- var params = locationString.split(';');
- if(params.length == 3) // Lat/lon
- getWWJApplet().gotoLatLon(parseFloat(params[1]),
- parseFloat(params[2]));
- }
Web頁面HTML中的山峰位置將被解碼為JavaScript字符串。將從這些字符串中解析出緯度,經(jīng)度及其它視覺信息,并將它們傳遞給Applet。 gotoLatLon方法是在WWJApplet類中定義的;上面的方法調(diào)用將起動一個(gè)JavaScript-to-Java調(diào)用,把參數(shù)從JavaScript引擎?zhèn)鹘oJava。World Wind Applet接收該通知,并將視點(diǎn)以動畫的方式切換到適當(dāng)?shù)牡胤健W⒁?,gotoLatLon方法會迅速地返回,以便瀏覽器不必等待它的完成;該動畫會在一個(gè)單獨(dú)的Java線程中運(yùn)行。
Figure 3. World Wind Applet with Mount St. Helen's Clicked
如上所述,將World Wind Java集成到你的應(yīng)用程序或Applet程序中的最好方法是將其作為一個(gè)JNLP擴(kuò)展。這允許很多來自網(wǎng)絡(luò)的集成了World Wind Java的應(yīng)用程序或Applet程序能夠共享World Wind代碼資源。為了引用World Wind JNLP擴(kuò)展,你需將下面的語句行加入到你的應(yīng)用程序或Applet程序的JNLP文件中的
注意,World Wind擴(kuò)展JNLP是區(qū)分版本的,所以你需參考World Wind文檔或訪問論壇去找到你的JNLP會引用到的擴(kuò)展的最新版本。World Wind Central是一個(gè)關(guān)于World Wind最新信息的有用資源。
class MyWWJApplet extends WWJApplet {}
將World Wind作為一個(gè)擴(kuò)展使用就意味著你不能將WWJApplet直接作為你的main-class使用。由于JNLP文件格式的語義,主jar (main="true")必須定義在主JNLP文件中。但很容易就能適應(yīng)該限制,你可簡單地創(chuàng)建你自己的WWJApplet子類(稱之為MyWWJApplet),而它并不做任何事情:
將worldwind.jar置于classpath中,并編譯上述類,然后將該類放入它自己的jar文件中。引入這個(gè)jar作為你的主jar,MyWWJApplet就成為了你的main-class,然后將其作為JNLP擴(kuò)展引入到World Wind中。
結(jié)論
介紹了Java插件對JNLP的支持,這為Applet的發(fā)布提供了很多新的可能,這對在瀏覽器內(nèi)外發(fā)布Java內(nèi)容的方法的統(tǒng)一又進(jìn)了一大步。Applet自從它們起始已過了很長的時(shí)間,現(xiàn)在隨著對JNLP的支持,它們會比以往更快,也更易于定制。
【編輯推薦】
- 20個(gè)開發(fā)人員非常有用的Java功能代碼
- 走進(jìn)Java 7中的模塊系統(tǒng)
- JavaFX 1.2 已經(jīng)發(fā)布 主要新功能一覽
- 2009年十大Java技術(shù)解決方案
- 下一代Java Applet插件技術(shù)第一部分
文章題目:下一代Java Applet插件技術(shù)第二部分
網(wǎng)站地址:http://www.5511xx.com/article/coogdeg.html


咨詢
建站咨詢
