JavaFX:系统托盘

Posted xhBruce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX:系统托盘相关的知识,希望对你有一定的参考价值。

JavaFX:系统托盘

JavaFX视频教程第211课,制作系统托盘
GITHUB: dustinkredmond / FXTrayIcon

SystemTray 系统托盘

jdk中java.awt.SystemTray

SystemTray systemTray = SystemTray.getSystemTray();

TrayIcon

这里使用 java awt 组件,注意Image图片路径处理

Image image = Toolkit.getDefaultToolkit().getImage(ResourceBundleUtil.getURL("img/xhbruce_csdn.jpg"));
String notifyStr = "JxhMusicPlayer";
PopupMenu menu = new PopupMenu();
MenuItem item = new MenuItem(ResourceBundleUtil.getString("exit"));
menu.add(item);
TrayIcon trayIcon = new TrayIcon(image, notifyStr, menu);
try 
    systemTray.add(trayIcon);
 catch (AWTException e) 

其他逻辑

  • stage上关闭默认“X”退出退出逻辑 Platform.setImplicitExit(false);
  • 自定义隐藏不退出 stage.hide();
  • trayIcon添加MouseListener监听e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1鼠标左键双击,注意需要Platform.runLater处理UI

以上是关于JavaFX:系统托盘的主要内容,如果未能解决你的问题,请参考以下文章

隐藏阶段时的JavaFX 8内存泄漏

JavaFX 单实例应用程序

请求关注 JavaFX 阶段不会更改 macOS 左上角菜单栏标题

Qt开发实现系统托盘,托盘菜单,托盘消息

Qt 实现系统托盘,托盘菜单,托盘消息

centos7.9下Qt 实现系统托盘,托盘菜单,托盘消息