首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java SE 6 桌面集成開發實戰:啟動畫面、系統托盤與桌面 API 全解析

     編輯:Java 相關知識

背景:Mustang 帶來的桌面新能力

Java SE 6(代號 Mustang)將 JDIC(Java Desktop Integration Components)核心功能納入標準庫,開發者無需 JNI 即可實現:啟動畫面、系統托盤圖標、默認瀏覽器啟動、文件關聯、系統托盤氣球提示 等原生桌面特性。

環境準備

  • JDK 6 Beta(JAVA_HOME=C:\Program Files\Java\jdk1.6.0)
  • Apache Ant 1.6.5+
  • Windows XP / 支持桌面的 Linux(GNOME/KDE)

功能 1:啟動畫面 —— 兩種啟動方式

方式 A:JAR Manifest 指定(推薦,無代碼侵入)

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

支持 GIF/PNG/JPEG,透明、半透明、動畫均可。JVM 啟動器在加載類前即顯示圖片。

方式 B:命令行參數

java -splash:gomustang-splash.gif GoMustang

程序化控制 java.awt.SplashScreen

SplashScreen splash = SplashScreen.getSplashScreen();
if (splash != null) {
    Graphics2D g = splash.createGraphics();
    // 繪製進度條、動畫...
    splash.update();
    Thread.sleep(3000);
    splash.close();
}

功能 2:系統托盤 —— java.awt.SystemTray + TrayIcon

核心步驟

  1. SystemTray.isSupported() 檢查平台支持
  2. 構建 PopupMenu + MenuItem(Exit、Launch Browser)
  3. 為菜單項添加 ActionListener
  4. 載入圖標 ImageIO.read(getClass().getResourceAsStream("gomustang.gif"))
  5. 創建 TrayIcon,關聯菜單、ToolTip、ActionListener
  6. systemTray.add(trayIcon)

關鍵代碼片段

MenuItem launchItem = new MenuItem("Launch Browser");
launchItem.addActionListener(e -> {
    if (Desktop.isDesktopSupported()) {
        Desktop desktop = Desktop.getDesktop();
        desktop.browse(new URI("https://dev.yesky.com"));
        trayIcon.displayMessage("GoMustang!", "Launching Browser...", TrayIcon.MessageType.INFO);
    }
});

功能 3:桌面 API —— java.awt.Desktop

統一啟動默認應用處理 URI/文件:

方法用途示例
browse(URI)打開默認瀏覽器desktop.browse(new URI("https://dev.yesky.com"))
open(File)用關聯程序打開文件desktop.open(new File("readme.pdf"))
edit(File)用編輯器打開文件desktop.edit(new File("config.xml"))
print(File)打印文件desktop.print(new File("doc.doc"))
mail(URI)啟動郵件客戶端desktop.mail(new URI("mailto:admin@example.com"))

Ant 構建腳本關鍵目標

<target name="init">...</target>
<target name="compile">...</target>
<target name="dist" depends="compile">  // 打包含 Manifest 的 JAR
<target name="run" depends="dist">    // java -jar GoMustang.jar
<target name="clean">...</target>

運行效果

  1. Ant 執行 run 目標
  2. 顯示 Splash 畫面 3 秒
  3. 系統托盤出現奔馬圖標
  4. 右鍵托盤圖標彈出菜單:Exit / Launch Browser
  5. 點擊 Launch Browser → 默認瀏覽器打開指定網址
  6. 點擊 Exit → 程序退出,托盤圖標消失

總結

Java SE 6 將桌面集成從「補丁方案」升級為「標準能力」。SplashScreen 解決啟動體驗,SystemTray/TrayIcon 賦予常駐後台與交互能力,Desktop 統一跨平台啟動默認應用。三者結合,讓 Java 桌面應用擁有真正的原生質感。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved