使用JDesktop Integration Components实现桌面系统托盘

转载 2007年09月11日 17:58:00
JDesktop Integration Components (JDIC),是一个开源的项目,目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 单一的 Java API 允许应用程序接进本机操作系统特性,同时保持跨平台支持。它目前提供了本机 Web 浏览器(Internet Explorer 或 Mozilla) 支持、系统托盘支持、文件扩展集成和其他桌面特性。

今天就只讲怎么实现系统托盘支持(因为目前我就用了这个功能 [sweat] ).

设置

编写和运行使用 JDIC 应用程序的机器设置比通常情况略微麻烦一些。除了通常的类路径要求之外,还必须提供 Java 类要调用的操作系统库。每个操作系统都有不同的操作系统库,所以如果想使用 JDIC 将应用程序移植到许多不同的操作系统上,则必须为每个操作系统提供一个库。使用 JDIC 发行版 0.9 时(也就是这篇文章所根据的版本),JDIC 可以处理 Windows、Linux 和 Solaris 系统(要对 Macintosh 的拥护者说抱歉了)。

开始下载跨平台 JDIC 包,其中包括:

1.jdic.jar:这个 JAR 文件包含进行 JDIC 开发所需的所有 Java 类。它们必须位于类路径中,以便进行编译。

2.jdic.dll 和 tray.dll:在 Windows 安装中,这些文件都要放在 C:/Windows 目录(或者对应的目录)中。这些文件包含 jdic.jar 的 Java 方法和本机操作系统方法之间的"桥接"方法。

3.libjdic.so 和 libtray.so:在 Solaris 和 Linux 系统上,这些文件必须放在 LD_LIBRARY_PATH 文件夹中。


SystemTray 组件
这个是今天的重点,托盘图标就是通过它来实现的.
整个 org.jdesktop.jdic.tray 包只有两个类:SystemTray 抽象了系统托盘本身;TrayIcon 抽象了系统托盘中的单个图标。

最直观的方式就是看代码:


SystemTray tray = SystemTray.getDefaultSystemTray();
//getPopupMenu()方法是创建一个菜单,代码略
final TrayIcon trayIcon = new TrayIcon(getTrayIcon(), "Tray Test",getPopupMenu());

trayIcon.setIconAutoSize(true);

trayIcon.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(true);//点击图标显示界面
}
});
tray.addTrayIcon(trayIcon);//向系统托盘添加新的 TrayIcon


private ImageIcon getTrayIcon() {
return new ImageIcon(Client.class.getResource("images/icon.png"));
}


这样就创建了一个托盘图标.

TrayIcon 类(很不幸)目前对它与鼠标单击的交互方式进行了硬编码。TrayIcon 在鼠标左键单击时将触发 ActionEvent,而在鼠标右击时则显示弹出菜单。

它还允许 TrayIcon 显示 Windows 用户熟悉的"泡泡消息"。
单击示例应用程序的 Alert 按钮,就可以看到实际运用中的泡泡消息。以下是实现它的代码:

//getBtnAlert()方法返回一个Button对象,方法略
getBtnAlert().addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
trayIcon.displayMessage("Alert", "This is an Alert Message", TrayIcon.INFO_MESSAGE_TYPE);
}
});



JDesktop Integration Components弥补了在 Swing 和 Java 程序语言之间的主要差距。随着其他方面的不断努力,差距会进一步缩小,总有一天,用户会无法区分 Java 应用程序和本机应用程序.如果大家对它的其他功能有兴趣的话可以访问https://jdic.dev.java.net/ JDIC Project 的主页。
 

使用JDesktop Integration Components实现桌面系统托盘

转自:http://www.javacc.net/blogview.asp?logID=50JDesktop Integration Components (JDIC),是一个开源的项目,目的是构建消...
  • zmxj
  • zmxj
  • 2005年11月11日 13:21
  • 2434

JDIC(JDesktop Integration Components)

摘要 相关下载https://jdic.dev.java.net本文简单介绍了JDIC(JDesktop Integration Components)的用途,以及以实例的形式教你如何使用JDIC调用...
  • rcyl2003
  • rcyl2003
  • 2007年08月02日 16:18
  • 1485

介绍 JDesktop Integration Components

转载自:http://www.ibm.com/developerworks/cn/java/j-jdic/ 用 JDIC 在桌面应用程序中集成本机操作系统特性 Michael Ab...
  • memray
  • memray
  • 2013年09月28日 12:27
  • 1304

JDIC(Jdesktop Integration Components)入门

摘要本文简单介绍了JDIC(JDesktop Integration Components)的用途,以及以实例的形式教你如何使用JDIC调用或者整合本地桌面环境的组件或应用程序。 如果你经常访问jav...
  • xunshu
  • xunshu
  • 2008年03月27日 09:59
  • 1365

介绍JDIC(JDesktop Integration Components)

本文将介绍 JDesktop Integration Components (JDIC),这是一个开源的项目,目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 单一的 Java ...
  • B_H_L
  • B_H_L
  • 2013年02月28日 19:30
  • 2342

【零碎JAVA】Eclipse配置Maven

1.软件环境 Eclipse Juno Service Release 2 2.Eclipse配置Maven (1)Help -> Install New Software... -> Add  ...
  • hua583999775
  • hua583999775
  • 2015年01月28日 16:32
  • 1358

MFC系统托盘的实现

通常电脑里边的软件,当你打开后会在电脑最右下角的任务栏上生成一个系统托盘,当你点击最小化或者点击关闭按钮后,若想恢复窗口,可以左键双击或者单机这个系统图标,同时鼠标右键点击,又会有其他的菜单弹出,比如...
  • u013051748
  • u013051748
  • 2015年05月10日 16:34
  • 1501

eclipse配置maven出现这个问题,求大神解决

Cannot complete the install because one or more required items could not be found.   Software being...
  • sam3ye
  • sam3ye
  • 2016年01月11日 10:59
  • 149

能显示农历的托盘时钟小工具

一个可以替换Windows系统右下角托盘时钟的日历时钟
  • bukebushuo
  • bukebushuo
  • 2017年04月06日 09:50
  • 418

C++对话框系统托盘实现

需求: 1、MFC对话框最小化时,只显示系统右下角托盘图标。 2、双击托盘,对话框还原。 3、右键点击托盘,弹出“关闭”菜单,可关闭对话框。     实现步骤: 1、创建MFC对话框程序...
  • HiRuyue
  • HiRuyue
  • 2013年09月07日 15:08
  • 680
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用JDesktop Integration Components实现桌面系统托盘
举报原因:
原因补充:

(最多只允许输入30个字)