当前位置: 首页 > 面试题库 >

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

夏侯宏旷
2023-03-14
问题内容

我正在使用Java开发桌面应用程序。我想在系统托盘上放置一个图标(带有上下文菜单)(在Mac Os中称为Menu Extras)。Java
6附带了在Windows和Linux中执行此操作的支持,但在Mac Os中不起作用。

我已经看到某些应用程序在所有三个操作系统(例如DropBox)中都能实现我想要的功能,但是我不知道它们是否是用Java制成的。

我该如何实现?

如果用Java无法实现,那么是否还有其他跨平台语言可以做到这一点?

谢谢。


问题答案:

AWT /秋千

根据
文件
,OSX10.5 Update
1和较新的支持TrayIcon小号

在Mac OS
X上,TrayIcons使用NSStatusMenus表示,这些菜单显示在标准系统菜单Extras的左侧。TrayIcon的java.awt.Image图稿按照Mac
OS X标准(菜单附加功能)以灰度显示。

TrayIcon.displayMessage()展示了一个位于TrayIcon下的小型非模式对话框。仅当按下非模式对话框上的“确定”按钮时,才会触发TrayIcon的ActionListener,如果使用窗口关闭按钮关闭窗口,则不会触发该ActionListener。

多次调用TrayIcon.displayMessage()将关闭先前的消息,仅保留最后一条消息。如果在调用TrayIcon.displayMessage()时应用程序不在前台,则该应用程序会在Dock中反弹其图标。消息窗口带有应用程序图标的标记,以标识哪个应用程序触发了通知。

诺亚提供了以下示例:

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

请注意,尽管如此,您可能需要先将菜单附加到该图标,然后再将其添加到托盘中。

SWT

根据 文档,SWT
3.3和更高版本在OSX上支持TrayItem图标。

在OS X上的状态栏中运行时,现在将显示放置在系统托盘上的图标。

此代码段显示了如何创建菜单和图标并将其放入任务栏。



 类似资料:
  • 将图标和上下文菜单添加到系统托盘。 进程: 主进程​ Tray是一个[EventEmitter][event-emitter]. 1 const {app, Menu, Tray} = require('electron') 2 let tray = null 3 app.on('ready', () => { 4 tray = new Tray('/path/to/my/icon') 5 con

  • 系统托盘 添加图标和上下文菜单到系统通知区 进程:主进程 Tray 是一个 EventEmitter. const { app, Menu, Tray } = require('electron') let tray = null app.on('ready', () => { tray = new Tray('/path/to/my/icon') const contextMenu =

  • 系统托盘是应用程序窗口之外的菜单。 在MacOS和Ubuntu上,它位于屏幕的右上角。 在Windows上,它位于右下角。 我们可以使用Electron为系统托盘中的应用程序创建菜单。 创建一个新的main.js文件并将以下代码添加到其中。 准备好png文件用于系统托盘图标。 const {app, BrowserWindow} = require('electron') const url =

  • 我已经设置了接收通知的代码,但它不起作用: 我用它在我的主要活动,我尝试了它,因为电话是待机。我该怎么解决?它需要其他代码吗?我遵循了以下指南:http://www.dre.vanderbilt.edu/~schmidt/android/android-4.0/out/target/common/docs/doc-comment-check/guide/topics/ui/notifiers/no

  • 我正在使用Firebase云消息为Android做推送通知,一切都很顺利,但我在想系统托盘的图标颜色是怎么回事。它正在被变成一个灰度图像,而不是保持它原来的颜色。我可以用方法为它着色,但我希望图标不会失去它的颜色,这可能吗?我已经尝试使用各种不同的图像,有自己的大小,透明/非透明,白色背景等,基于一些帖子,我可以找到。我似乎找不到关于这里实际发生的事情的答案。我的编译/目标sdk目前是26。我在模

  • 问题内容: 我有一个小控制面板,只是我做的一个小应用程序。我想最小化/使用系统图标上下控制面板,以及电池寿命,日期,网络等。 有人可以给我一个提示,链接到教程或阅读的东西吗? 问题答案: 从Java 6开始,and 类支持此功能。在Javadocs中有一个非常广泛的示例: 您也可以查看本文或此技术提示。