JDesktop Integration Components (JDIC),是一個(gè)開(kāi)源的項(xiàng)目,目的是構(gòu)建消除本機(jī)應(yīng)用程序和 Java 等價(jià)物之間差距的組件。JDIC 單一的 Java API 允許應(yīng)用程序接進(jìn)本機(jī)操作系統(tǒng)特性,同時(shí)保持跨平臺(tái)支持。它目前提供了本機(jī) Web 瀏覽器(Internet Explorer 或 Mozilla) 支持、系統(tǒng)托盤(pán)支持、文件擴(kuò)展集成和其他桌面特性。 今天就只講怎么實(shí)現(xiàn)系統(tǒng)托盤(pán)支持(因?yàn)槟壳拔揖陀昧诉@個(gè)功能 ![]() 設(shè)置 編寫(xiě)和運(yùn)行使用 JDIC 應(yīng)用程序的機(jī)器設(shè)置比通常情況略微麻煩一些。除了通常的類路徑要求之外,還必須提供 Java 類要調(diào)用的操作系統(tǒng)庫(kù)。每個(gè)操作系統(tǒng)都有不同的操作系統(tǒng)庫(kù),所以如果想使用 JDIC 將應(yīng)用程序移植到許多不同的操作系統(tǒng)上,則必須為每個(gè)操作系統(tǒng)提供一個(gè)庫(kù)。使用 JDIC 發(fā)行版 0.9 時(shí)(也就是這篇文章所根據(jù)的版本),JDIC 可以處理 Windows、Linux 和 Solaris 系統(tǒng)(要對(duì) Macintosh 的擁護(hù)者說(shuō)抱歉了)。 開(kāi)始下載跨平臺(tái) JDIC 包,其中包括: 1.jdic.jar:這個(gè) JAR 文件包含進(jìn)行 JDIC 開(kāi)發(fā)所需的所有 Java 類。它們必須位于類路徑中,以便進(jìn)行編譯。 2.jdic.dll 和 tray.dll:在 Windows 安裝中,這些文件都要放在 C:\Windows 目錄(或者對(duì)應(yīng)的目錄)中。這些文件包含 jdic.jar 的 Java 方法和本機(jī)操作系統(tǒng)方法之間的"橋接"方法。 3.libjdic.so 和 libtray.so:在 Solaris 和 Linux 系統(tǒng)上,這些文件必須放在 LD_LIBRARY_PATH 文件夾中。 SystemTray 組件 這個(gè)是今天的重點(diǎn),托盤(pán)圖標(biāo)就是通過(guò)它來(lái)實(shí)現(xiàn)的. 整個(gè) org.jdesktop.jdic.tray 包只有兩個(gè)類:SystemTray 抽象了系統(tǒng)托盤(pán)本身;TrayIcon 抽象了系統(tǒng)托盤(pán)中的單個(gè)圖標(biāo)。 最直觀的方式就是看代碼: SystemTray tray = SystemTray.getDefaultSystemTray(); private ImageIcon getTrayIcon() { 這樣就創(chuàng)建了一個(gè)托盤(pán)圖標(biāo). TrayIcon 類(很不幸)目前對(duì)它與鼠標(biāo)單擊的交互方式進(jìn)行了硬編碼。TrayIcon 在鼠標(biāo)左鍵單擊時(shí)將觸發(fā) ActionEvent,而在鼠標(biāo)右擊時(shí)則顯示彈出菜單。 它還允許 TrayIcon 顯示 Windows 用戶熟悉的"泡泡消息"。 單擊示例應(yīng)用程序的 Alert 按鈕,就可以看到實(shí)際運(yùn)用中的泡泡消息。以下是實(shí)現(xiàn)它的代碼: //getBtnAlert()方法返回一個(gè)Button對(duì)象,方法略 JDesktop Integration Components彌補(bǔ)了在 Swing 和 Java 程序語(yǔ)言之間的主要差距。隨著其他方面的不斷努力,差距會(huì)進(jìn)一步縮小,總有一天,用戶會(huì)無(wú)法區(qū)分 Java 應(yīng)用程序和本機(jī)應(yīng)用程序.如果大家對(duì)它的其他功能有興趣的話可以訪問(wèn)https://jdic.dev./ JDIC Project 的主頁(yè)。 PS:最近嚴(yán)重的懶惰.Blog也很久沒(méi)更新了,可能是天氣的原因吧 |
|