無為

          無為則可為,無為則至深!

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

          提要:本文將以具體的實例向你展示Java SE 6在桌面開發中所提供的一系列優秀特征。

            一、 引言

            隨著Java SE 6 Beta的發行,Java開發者再也不需要自己去實現Java本機接口(JNI)便可以在其應用程序中加入桌面產品所具有的特征。這些桌面集成特征現在已成為內核的一個組成部分。

            最新的Java標準版本6.0(代碼名為Mustang)將在功能上進行一系列的改進--開發者們能夠方便地用Java處理安全,JMX,操作系統文件,國際化和桌面開發等一系列問題。Sun在開發這個版本的過程中表現出非常積極的合作態度。他們通過JSR 270仔細地傾聽開發者的意見并且在2006年2月早些時候就發行了所有的Java SE源碼和二進制代碼。看來,Sun正在傾力打造全新的桌面開發工具。

            相對于以前的Java版本,Mustang的桌面集成能力特別受Java開發者歡迎。這些新特征把很多有趣的功能加入到Java桌面應用程序的開發中。以前,開發例如Internet Explorer,系統托盤和郵件客戶端等Java時,開發者必須在創建如Jtray和SysTray等Java本機接口(JNI)方面大傷腦筋。盡管這種"補丁"方案能夠實現既定目的,但是絕大部分的Java開發者都非常盼望這些特征成為核心Java平臺的一部分。

            本文將詳細分析一個示例應用程序GoMustang的創建過程。從中,我將向你展示如何使用Java SE 6在應用程序啟動時顯示一個Splash屏幕,怎樣創建系統托盤,以及怎樣從Java內部啟動本機桌面互聯網瀏覽器。

            注意,為調試本文中的示例程序,你需要安裝:Java Standard Edition 6 BetaApache Ant 1.6.5

            二、 開發環境

            (一) 準備Java SE 6 Beta

            首先,你要從Sun的Java站點下載Java SE 6 Beta。因為Sun已經確定將在2006年的秋天正式發行Java SE 6,而且據JSR 270專家組的建議其中的一些特征還將會作適當的改變;因此,目前在你的桌面開發中試用Mustang正是時候。

            估計,最終本文中所描述的特征不會出現多大變化;所以你可以放心使用JDK,JRE等的最新下載版本。

            首先,請確保你的桌面平臺被支持。我在Windows XP上開發和測試了本文的示例應用程序,且毫無問題。

            其次,還要確保你的計算機的Windows系統屬性中的環境變量指向Java SE 6.0 JDK。我把JAVA_HOME環境變量設置為JAVA_HOME=C:Program FilesJavajdk1.6.0。

            一旦安裝完成,你應該立即檢查Java JRE的版本。如果一切順利,應該顯示類似下面的一條消息:

          C:javamustang> java -version
          java version "1.6.0-beta"
          Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-beta-b59g)
          Java HotSpot(TM) Client VM (build 1.6.0-beta-b59g,mixed mode,sharing)

            (二) 準備Ant

            在本文中,你將使用Apache Ant來構建示例應用程序。因此,如果你還沒有這個工具,你可以從Apache網站下載并把它安裝到你的計算機上。

            然后,你可以使用Ant屬性來檢查Ant Java版本。下列的例子顯示了一個不正確的Java版本:

          ${ant.java.version}

            這是因為Ant內置的ant.java.version系統屬性被設計僅擁有1.1,1.2,1.3,1.4和1.5這幾個值。估計,Ant開發小組可能很快就會更新這個屬性以包含1.6;但是,當你想自己實現這一點時要特別小心。

            為了慎重起見,你可以使用-debug參數來運行Ant。如果顯示如下內容,則說明Ant實際上在使用一個1.6版本的JRE:

          >>
          Detected Java version: 1.5 in: C:Program FilesJavajdk1.6.0jre
          <<

            (三) 安裝你的開發環境

            接下來,安裝你的開發環境。為此,最簡單的方法是下載本文相應的源碼并解壓。如果你把ZIP文件解壓到你的C:路徑下,那么你會看到如下結構的文件和目錄:

          c:mustang
          |_build.xml
          +_src

            后面,你將使用Ant構建文件build.xml來實現復制,編譯,構建,打包和運行GoMustang示例應用程序。該文件包含下列幾個關鍵的Ant目標:

          [init]
          [clean]
          [compile]
          [dist]
          [run]

            這里,[init]目標負責建立文件夾結構并且把文件拷貝到build文件夾;[compile]實現編譯,而[dist]通過使用一個Manifest文件來創建一個JAR(后面將詳細討論)。[run]目標負責啟動你的應用程序,而[clean]將幫助你首先刪除所有的由Ant任務所創建的文件和目錄,然后從一個完全干凈的環境開始下面的任務。

            src目錄包含3個文件:一個GoMustang.java(源碼文件)和兩個GIF文件(gomustang-splash.gif用作Splash屏幕,gomustang.gif用作系統托盤中的圖標)。

            現在,你已經打好了基礎。下面,我們開始創建你的應用程序的Splash屏幕。

            三、 Splash屏幕

            對基于桌面的應用程序來說,Splash屏幕一直在應用程序的啟動過程中起著關鍵作用。一個醒目的Splash屏幕能使用戶熱切地盼望應用程序的啟動--通過顯示行銷廣告,特定的法律條文,專業圖象,等等。同時,它還提供給應用程序一定的時間周期以裝載要求的庫文件。
          在Java應用程序開發中,實現Splash屏幕一直是一種挑戰性編程,因為在JVM啟動和所有要求的JRE和應用程序庫被裝載前程序無法取得控制權。而等到一個Java應用程序得到控制線程的機會時,顯示一個Splash屏幕已經太晚了。

            Java SE 6甚至允許一個應用程序在JVM啟動前就可以顯示一個Splash屏幕。這項功能被構建于Java應用程序啟動器中--由它負責在一個未經修飾的窗口中顯示一幅圖像。它允許使用GIF,PNG或JPEG圖象,可以是透明性或半透明的,并且可以存在動畫效果。而且,Java SE 6發行中還帶有一個SplashScreen類--它允許一旦應用程序控制線程,該程序就可以操作Splash屏幕。

            你可以用下面兩種方式之一來啟動一個Splash屏幕:

            1. 在一個JAR的Manifest文件中指定一個具體的SplashScreen-Image屬性;

            2. 使用一個命令行-splash參數。

            (一) 使用JAR的Manifest屬性

            本文下載源碼中的JAR文件包含了一個gomustang-splash.gif文件(此文件在應用程序啟動時顯示一個Splash屏幕)和編譯類文件GoMustang.class。這個JAR文件的Manifest包含定義main()方法的類的名字和SplashScreen-Image屬性(它指向gomustang-splash.gif文件)。

            下面的列表展示了Ant build.xml JAR任務的內容--其中指定了main-class和SplashScreen-Image屬性:

          ...
          <jar jarfile="${dist}/GoMustang.jar" basedir="${build}">
          <manifest>
          <attribute name="Main-Class" value="GoMustang"/>
          <attribute name="SplashScreen-Image" value="gomustang-splash.gif"/>
          </manifest>
          </jar>
          ...

            為了看清Splash屏幕的真正運行,你可以通過在命令提示符上輸入ant run來執行build.xml的[run]目標。因該程序很小,所以Java應用程序會在人眼能看見它之前完成打開和關閉操作。為此,你可以使用暫停3秒的編碼小技巧。

            一旦運行run目標,Ant應該會輸出如圖1所示的控制臺跟蹤信息,然后暫停3秒,此間用戶會看到Splash屏幕中的gomustang-splash.gif圖片。


          圖1.Ant暫停

            3秒后,Ant腳本完成應用程序的創建,見圖2。


          圖2.Ant腳本完成系統托盤的創建

            一個圖標將在系統托盤中被創建,由圖3所示。


          圖3.GoMustang圖標

            (二) 使用命令行-splash參數

            顯示一個splash屏幕的第二種方法是,使用-splash命令行參數傳遞splash屏幕文件名,如下所示

          C:mustanguild> java -splash:gomustang-splash.gif GoMustang

            注意,為了使該命令正常運行,你需要從c:mustanguild目錄(編譯class文件和splash屏幕GIF文件所在的位置)下使用Java的命令行方式。這些文件都是由Ant中的build.xml文件中的任務所創建。

            一旦應用程序獲得一個線程的存取權限,你就可以使用java.awt.SplashScreen類通過編程存取Splash屏幕。這是一個singleton類,它提供專門的函數來改變Splash屏幕圖像,檢索Splash屏幕的大小和界限,操作有關圖形對象,并最后關閉Splash屏幕。


          凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
          、轉載請注明來處和原文作者。非常感謝。

          posted on 2006-06-24 14:11 草兒 閱讀(183) 評論(0)  編輯  收藏 所屬分類: Java編程經驗談
          主站蜘蛛池模板: 永济市| 富裕县| 丰镇市| 大渡口区| 墨玉县| 南通市| 屯留县| 民县| 巴塘县| 黔东| 清徐县| 三门县| 乐昌市| 陆河县| 陕西省| 平陆县| 天峻县| 无为县| 左云县| 新和县| 喜德县| 蒙山县| 璧山县| 桐乡市| 沙湾县| 中方县| 肃宁县| 武功县| 定陶县| 泽普县| 炎陵县| 宁河县| 达州市| 平乡县| 封开县| 马尔康县| 乐亭县| 海宁市| 郑州市| 万盛区| 宁南县|