代码之家  ›  专栏  ›  技术社区  ›  sinuhepop

使用Java的Mac OS中系统托盘(菜单附加)图标

  •  15
  • sinuhepop  · 技术社区  · 15 年前

    我正在开发一个使用Java的桌面应用程序。我想在系统托盘上放置一个图标(带有上下文菜单)(在Mac OS中称为菜单附加项)。Java 6附带支持在Windows和Linux中这样做,但它在Mac OS中不起作用。

    我已经看到一些应用程序在所有三个操作系统(如Dropbox)中做我想要的,但是我不知道它们是用Java制作的。

    我怎样才能做到这一点?

    如果在Java中是不可能的,有没有其他的跨平台语言能做到这一点呢?

    谢谢。

    2 回复  |  直到 10 年前
        1
  •  18
  •   Community Dunja Lalic    7 年前

    AWT/回转

    根据 documentation,osx 10.5 update 1 and newer support trayicon= <<强>

    trayicons在mac os x上表示 使用显示的nsstatusmenus 标准系统左侧 菜单附加功能。java.awt.image Trayicon的艺术品展示于 根据Mac OS X标准的灰度 对于菜单附加功能。

    trayicon.displayMessage()显示 定位的小型非模态对话框 在悲剧中。动作监听器 因为只有在 非模态对话框上的“确定”按钮是 按下,如果窗口 使用“Window Close(关闭窗口)”按钮关闭。

    多次呼叫 trayicon.displayMessage()将关闭 以前的消息,只留下最后一条 消息。如果应用程序不在 前景何时 调用trayicon.displayMessage(), 应用程序将其图标反弹到 码头。消息窗口有标记 使用应用程序的图标 确定哪个应用程序 已触发通知。

    < /块引用>

    noah provided this sample:。

    < PRE> >代码> Java.AWT.Studio.GETStReTrayAy().添加(new Java.AWT . TrayIcon(Java.AWT.TooKo.GETDebug ToToCKT)). GeMeTimes(“Fo.PNG”)); < /代码>

    请注意,在将该图标添加到托盘之前,您可能需要将菜单附加到该图标上。

    swt

    根据 documentation ,swt 3.3 and newer supports trayitem icons on osx.

    < Buff行情>

    当在状态栏中的OS X上运行时,系统托盘上的图标现在会出现。

    < /块引用>

    this snippet shows how to create a menu and icon and put them in the tray.

    ,OSX 10.5更新1和更新的支持 TrayIcon S

    trayicons在mac os x上表示 使用显示的nsstatusmenus 标准系统左侧 菜单附加部分。java.awt.image Trayicon的艺术品展示于 根据Mac OS X标准的灰度 菜单附加功能。

    trayicon.displayMessage()显示 定位的小型非模态对话框 在悲剧中。动作监听器 因为只有在 非模态对话框上的“确定”按钮是 按下,如果窗口 使用窗口关闭按钮关闭。

    多次呼叫 trayicon.displayMessage()将关闭 以前的消息,只留下最后一条 消息。如果应用程序不在 前景何时 调用trayicon.displayMessage(), 应用程序将其图标反弹到 码头。消息窗口有标记 使用应用程序的图标 确定哪个应用程序 已触发通知。

    noah 提供此示例:

    java.awt.SystemTray.getSystemTray().add(new java.awt.TrayIcon(java.awt.Toolkit.getDefaultToolkit().getImage("foo.png")));
    

    不过,请注意,在将该图标添加到托盘之前,您可能需要将菜单附加到该图标上。

    SWT

    根据 documentation ,SWT 3.3和更新的支持 TrayItem OSX上的图标。

    当在状态栏中的OS X上运行时,系统托盘上的图标现在会出现。 SWT TrayItem

    This snippet 显示如何创建菜单和图标并将它们放入托盘。

        2
  •  1
  •   Mike    13 年前

    我很容易地将一个Windows应用程序移植到我的Mac上。我注意到的一件事是,图标是完整的,活生生的颜色(不遵循mac约定)。我需要添加一些特定于操作系统的代码来转换自己。但是从DLL依赖的桌面集成版本到Java的早期迭代,这是一个很大的进步。