sin*_*pop 15 java macos desktop-application system-tray
我正在使用Java开发桌面应用程序.我想在系统托盘上放置一个图标(带有上下文菜单)(在Mac OS中称为菜单附加功能).Java 6支持在Windows和Linux中执行此操作,但它在Mac Os中不起作用.
我已经看到一些应用程序在所有三个操作系统(例如DropBox)中执行我想要的操作,但我不知道它们是否是用Java编写的.
我怎样才能做到这一点?
如果在Java中不可能,是否还有其他跨平台语言可以做到这一点?
谢谢.
Pow*_*ord 18
根据文件,OSX 10.5 Update 1和较新的支持TrayIcon小号
TrayIcons在Mac OS X上使用NSStatusMenus表示,它们显示在标准系统菜单附加功能的左侧.TrayIcon的java.awt.Image图稿按照Mac OS X标准的灰度显示,用于菜单附加功能.
TrayIcon.displayMessage()提供了一个位于TrayIcon下的小型非模态对话框.如果按下非模态对话框上的"确定"按钮,则仅触发TrayIcon的ActionListener,而不是使用窗口关闭按钮关闭窗口时触发.
对TrayIcon.displayMessage()的多次调用将关闭先前的消息并仅保留最后一条消息.如果在调用TrayIcon.displayMessage()时应用程序不在前台,则应用程序会在Dock中弹回其图标.使用应用程序的图标标记消息窗口,以标识触发通知的应用程序.
诺亚提供了这个样本:
java.awt.SystemTray.getSystemTray().add(new java.awt.TrayIcon(java.awt.Toolkit.getDefaultToolkit().getImage("foo.png")));
Run Code Online (Sandbox Code Playgroud)
请注意,您可能希望在将菜单添加到托盘之前将其附加到该图标.
根据文档,SWT 3.3和更新版本支持OSX上的TrayItem图标.
现在,在状态栏中的OS X上运行时,将显示放置在系统托盘上的图标.
此代码段显示如何创建菜单和图标并将其放入托盘中.