<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無為

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

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks

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

      一、 引言

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

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

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

      本文將詳細(xì)分析一個示例應(yīng)用程序GoMustang的創(chuàng)建過程。從中,我將向你展示如何使用Java SE 6在應(yīng)用程序啟動時顯示一個Splash屏幕,怎樣創(chuàng)建系統(tǒng)托盤,以及怎樣從Java內(nèi)部啟動本機桌面互聯(lián)網(wǎng)瀏覽器。

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

      二、 開發(fā)環(huán)境

      (一) 準(zhǔn)備Java SE 6 Beta

      首先,你要從Sun的Java站點下載Java SE 6 Beta。因為Sun已經(jīng)確定將在2006年的秋天正式發(fā)行Java SE 6,而且據(jù)JSR 270專家組的建議其中的一些特征還將會作適當(dāng)?shù)母淖儯灰虼耍壳霸谀愕淖烂骈_發(fā)中試用Mustang正是時候。

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

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

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

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

    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)

      (二) 準(zhǔn)備Ant

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

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

    ${ant.java.version}

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

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

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

      (三) 安裝你的開發(fā)環(huán)境

      接下來,安裝你的開發(fā)環(huán)境。為此,最簡單的方法是下載本文相應(yīng)的源碼并解壓。如果你把ZIP文件解壓到你的C:路徑下,那么你會看到如下結(jié)構(gòu)的文件和目錄:

    c:mustang
    |_build.xml
    +_src

      后面,你將使用Ant構(gòu)建文件build.xml來實現(xiàn)復(fù)制,編譯,構(gòu)建,打包和運行GoMustang示例應(yīng)用程序。該文件包含下列幾個關(guān)鍵的Ant目標(biāo):

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

      這里,[init]目標(biāo)負(fù)責(zé)建立文件夾結(jié)構(gòu)并且把文件拷貝到build文件夾;[compile]實現(xiàn)編譯,而[dist]通過使用一個Manifest文件來創(chuàng)建一個JAR(后面將詳細(xì)討論)。[run]目標(biāo)負(fù)責(zé)啟動你的應(yīng)用程序,而[clean]將幫助你首先刪除所有的由Ant任務(wù)所創(chuàng)建的文件和目錄,然后從一個完全干凈的環(huán)境開始下面的任務(wù)。

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

      現(xiàn)在,你已經(jīng)打好了基礎(chǔ)。下面,我們開始創(chuàng)建你的應(yīng)用程序的Splash屏幕。

      三、 Splash屏幕

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

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

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

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

      2. 使用一個命令行-splash參數(shù)。

      (一) 使用JAR的Manifest屬性

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

      下面的列表展示了Ant build.xml JAR任務(wù)的內(nèi)容--其中指定了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來執(zhí)行build.xml的[run]目標(biāo)。因該程序很小,所以Java應(yīng)用程序會在人眼能看見它之前完成打開和關(guān)閉操作。為此,你可以使用暫停3秒的編碼小技巧。

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


    圖1.Ant暫停

      3秒后,Ant腳本完成應(yīng)用程序的創(chuàng)建,見圖2。


    圖2.Ant腳本完成系統(tǒng)托盤的創(chuàng)建

      一個圖標(biāo)將在系統(tǒng)托盤中被創(chuàng)建,由圖3所示。


    圖3.GoMustang圖標(biāo)

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

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

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

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

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


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

    posted on 2006-06-24 14:11 草兒 閱讀(177) 評論(0)  編輯  收藏 所屬分類: Java編程經(jīng)驗談
    主站蜘蛛池模板: 免费国产成人午夜私人影视| 亚洲免费一区二区| 黄网站色视频免费观看45分钟 | 免费观看成人毛片a片2008| 国产成人综合久久精品亚洲| 国产亚洲大尺度无码无码专线 | 国产精品va无码免费麻豆| 国产无遮挡又黄又爽免费网站| 99亚洲精品高清一二区| 全黄a免费一级毛片人人爱| 午夜精品免费在线观看| 久久亚洲精品高潮综合色a片| 久久精品国产96精品亚洲| 国产成人青青热久免费精品| 亚洲国产精品免费视频| 日韩a毛片免费观看| 亚洲精品456在线播放| 亚洲人成色77777在线观看大| 亚洲人成网站免费播放| 你懂的网址免费国产| 精品视频免费在线| 亚洲av乱码一区二区三区香蕉 | 亚洲熟妇无码乱子AV电影| 永久免费AV无码国产网站| 两个人看的www免费视频| 亚洲国产成人久久一区二区三区| 亚洲av无码av制服另类专区| 国产国产人免费人成免费视频 | 99re在线免费视频| 一个人免费观看日本www视频| 美女视频黄免费亚洲| 亚洲成人中文字幕| 亚洲人成亚洲人成在线观看| 在线观看亚洲免费| 免费无码又爽又刺激聊天APP| 日韩免费在线观看视频| 国产精品免费久久久久影院| 精品久久久久久亚洲综合网| 亚洲成电影在线观看青青| 亚洲处破女AV日韩精品| 亚洲欧洲中文日韩久久AV乱码 |