E81086713E446D36F62B2AA2A3502B5EB155

          Java雜家

          雜七雜八。。。一家之言

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            40 Posts :: 1 Stories :: 174 Comments :: 0 Trackbacks
          利用周末時間把Native Splash Screen支持給做進去了,現在在創建EXE時可以訂制程序啟動時的Splash Screen圖片(BMP,JPG,GIF..)以及定制顯示的文字。

          Splash Screen會在你的程序顯示第一個窗口時自動消失,假如你的程序永遠不會顯示窗口,那么你可以在程序中顯式關閉Splash Screen.

          在你的程序中添加類似如下代碼:
          1?Class?cls=Class.forName("com.yovn.labs.java2exe.loader.SplashScreen");
          2?????????????????Method?getIM=cls.getMethod("getInstance",?new?Class[0]);
          3?????????????????Object?screen=getIM.invoke(null,?new?Object[0]);
          4?????????????????Method?m=cls.getMethod("dispose",?new?Class[0]);
          5?????????????????m.invoke(screen,?new?Object[0]);
          6?????????????????//SplashScreen.getInstance().dispose();
          7?????????????????System.out.println("disposed?splash?screen");
          8?


          Splash Screen是在創建JVM之前就顯示的。

          那么這是怎么實現的呢?問題的關鍵在于程序顯示第一個窗口時如何能通知到Splash Screen?
          魔力在于API Hook!!
          顯示任何一個窗口,絕大多數(不知道是不是全部)都是通過ShowWindow()Windows API實現的,該函數定義在User32.dll中,通過查找JVM載入的所有Module,并在其中替換導入的該函數地址就可以在調用該函數時得到通知,從而實現自動關閉Splash Screen.


          下載:
          Java2exe_0.0.2.rar
          posted on 2007-03-04 00:53 DoubleH 閱讀(2338) 評論(8)  編輯  收藏

          Feedback

          # re: Java轉EXE工具(二)[也談Splash Screen實現] 2007-03-04 15:21 azure
          厲害,同時精通c和java真不容易。
          jdk6里面可以通過啟動的時候添加splash screen參數啟動,如:
          java -cp ... -splash splashImage ... 來啟動,不過沒有你這么做好,因為這樣啟動的只是一個image,象進度條等處理比較麻煩一點。
            回復  更多評論
            

          # re: Java轉EXE工具(二)[也談Splash Screen實現] 2007-03-04 16:52 Druze.libo
          運行了一下java2exe,機子重啟了,呵呵  回復  更多評論
            

          # re: Java轉EXE工具(二)[也談Splash Screen實現] 2007-03-04 17:47 Javacap
          @Druze.libo
          呵呵,那真是非常不好意思阿。。。。能mail告訴我你的環境么?  回復  更多評論
            

          # re: Java轉EXE工具(二)[也談Splash Screen實現][未登錄] 2007-03-06 14:47 quietywind
          還是跟上一個版本一樣,點擊add后沒有任何反應,我的JRE是1.5版的,會是什么問題呢?  回復  更多評論
            

          # re: Java轉EXE工具(二)[也談Splash Screen實現] 2007-03-06 16:01 Javacap
          @quietywind
          非常抱歉!!!我一不小心使用了個JDK1.6 的類javax.jswing.filechooser.FileNameExtentionFilter
          今晚回家更新一下!

            回復  更多評論
            

          # re: Java轉EXE工具(二)[也談Splash Screen實現] 2007-03-06 21:35 Javacap
          @quietywind
          現在已更新了,去掉了JDK6中的類,歡迎使用!!  回復  更多評論
            

          # re: Java轉EXE工具(二)[也談Splash Screen實現][未登錄] 2007-03-07 09:29 quietywind
          多謝,使用了一下效果不錯,不過好像目前不支持中文路徑,可以共享一下思路么? 讓我也可以學習一下 :)  回復  更多評論
            

          # re: Java轉EXE工具(二)[也談Splash Screen實現] 2007-12-21 13:29 Ikbear
          朋友,我運行你那個程序,點擊add,半天才跳出對話框啊。感覺大的JAVA程序在我機子上運行都是很慢很慢的,netbeans也是一樣的效果,會是顯卡的問題嗎?還是驅動沒裝好呢?  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 隆回县| 溧阳市| 三门峡市| 永新县| 榕江县| 仙桃市| 客服| 阜平县| 永清县| 岳普湖县| 榆树市| 韩城市| 罗田县| 朝阳市| 关岭| 灵宝市| 邳州市| 宣威市| 南宫市| 邓州市| 林芝县| 岫岩| 巢湖市| 镇康县| 如东县| 颍上县| 嘉善县| 大姚县| 洱源县| 府谷县| 来宾市| 乃东县| 九寨沟县| 石门县| 即墨市| 建湖县| 同江市| 沙雅县| 东莞市| 瑞安市| 博客|