`
izuoyan
  • 浏览: 9294338 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多
转自:http://www.javacc.net/blogview.asp?logID=50
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 的主页。

PS:最近严重的懒惰.Blog也很久没更新了,可能是天气的原因吧
分享到:
评论

相关推荐

    JDesktop+Integration+Components.pdf

    《JDesktop+Integration+Components.pdf》是一份详尽介绍了JDIC(JDesktop Integration Components)项目的文档,旨在为Java开发者提供一种方法,使他们能够更好地融合Java应用程序与本机操作系统的特性,从而提升...

    JDIC(JDesktop Integration Components).jar

    JDIC,全称为JDesktop Integration Components,是一款专为Java开发者设计的开源库,它提供了丰富的功能,使得Java应用程序能够更好地与桌面环境集成。这个库由Sun Microsystems开发,并且在后来的Oracle时代继续...

    JDIC(JDesktop Integration Components)

    Java的GUI内嵌浏览器JDIC(JDesktop Integration Components)所需要的jar包以及dll文件,包括 jdic.jar、 jdic.dll 、tray.all 、IeEmbed.exe

    The JDesktop Integration Components (JDIC)

    The JDesktop Integration Components (JDIC) 有人提出分数太高,但是我无法修改分数,可以给大家提供别人的下载地址,希望能对你们有帮助 http://download.csdn.net/source/499302

    tray.dll

    java内置浏览器辅助插件-2

    利用JAVA实现网页浏览器的方法

    本文将为您详细介绍如何使用 JAVA 实现网页浏览器,使用 JDIC(JDesktop Integration Components)组件来嵌入网页浏览器。 标题:利用 JAVA 实现网页浏览器的方法 描述:JAVA 实现网页浏览器 标签:JAVA 实现网页...

    java浏览器 jdic webbrowser 支持系统托盘,支持截屏

    本项目利用了JDIC(Java Desktop Integration Components)库,这是一个用于增强Java应用程序与桌面环境集成的开源库,特别适合于创建具有系统托盘功能和屏幕截图能力的浏览器。 JDIC库提供了对操作系统原生功能的...

    基于Java AWT、SpringBoot、websocket、canvas的跨平台远程桌面实现

    在IT领域,构建一个跨平台的远程桌面系统是一项复杂而重要的任务,特别是在现代企业环境中,高效协作和远程工作越来越普遍。本项目“基于Java AWT、SpringBoot、websocket、canvas的跨平台远程桌面实现”正是为此...

    Rich Clients with SWING.pdf

    - **系统托盘图标**:JDIC提供了对系统托盘图标的全面支持,允许Java应用像其他原生应用一样使用系统托盘图标进行状态显示或快捷操作。 - **浏览器嵌入**:JDIC支持将Web浏览器直接嵌入到Java应用中,实现浏览器与...

    浏览器解析

    JDIC(JDesktop Integration Components)是一个开源的项目,目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC单一的 Java API 允许应用程序接进本机操作系统特性,同时保持跨平台支持。它目前提供了...

    JDIC应用

    JDIC(JDesktop Integration Components)是一个开源项目,旨在帮助Java开发者在桌面应用程序中集成本地操作系统特性,从而使得Java应用能够更接近本机应用程序的用户体验。该项目由一系列组件组成,允许开发者利用...

    JDIC开发用到的dll文件

    JDIC 全程是 JDesktop Integration Components,是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 单一的 Java API 允许应用程序接进本机操作系统特性,同时保持跨平台支持。

    JAVA浏览器

    该组件通过JDesktop Integration Components(JDIC)库实现,这是一个开源项目,旨在弥合Java应用程序与本机操作系统特性之间的差距。 JDIC的核心目标是提供一个统一的Java API,使Java应用能在不失去跨平台能力的...

    jdic-all.jar

    java webbrower,JDIC开发...JDIC 全程是 JDesktop Integration Components 目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 单一的 Java API 允许应用程序接进本机操作系统特性,同时保持跨平台支持。

    tray64.zip

    tray 64位上传文件,用于jdic中的dll库,JDIC 全程是 JDesktop Integration Components 目的是构建消除本机应用程序和 Java 等价物之间差距的组件。JDIC 单一的 Java API 允许应用程序接进本机操作系统特性,同时...

    基于java的浏览器的设计实现.ppt

    此外,还利用了JDIC(JDesktop Integration Components)类库,这是一个开源项目,旨在减少本地应用程序与Java应用程序之间的差距。JDIC提供了一个单一的Java API,允许开发者访问本地操作系统的特性,如集成Web...

    Neo4jDesktop Setup1.6.1软件包

    Neo4jDesktop Setup1.6.1软件包,用于无法访问外网的同学下载。

    org-jdesktop-layout.jar

    org-jdesktop-layout.jar

    org.jdesktop.layout jar包,完整亲测

    org.jdesktop.layout jar包,完整亲测

    com.siyue.org.jdesktop.swingx_1.6.4.jar

    jar包,官方版本,自测可用

Global site tag (gtag.js) - Google Analytics