先添加依赖
<dependency>
<groupId>com.dustinredmond.fxtrayicon</groupId>
<artifactId>FXTrayIcon</artifactId>
<version>3.0.0</version>
</dependency>
引入FXTrayIcon模块
module org.example {
requires javafx.controls;
requires FXTrayIcon;
requires org.apache.commons.lang3;
exports org.example;
}
主要实现逻辑
// 先判断是否支持系统托盘
if (FXTrayIcon.isSupported()) {
// 先添加系统托盘图标
File imageFile = new File("./images/icon.jpg");
URI uri = imageFile.toURI();
URL url = null;
try {
url = uri.toURL();
} catch (MalformedURLException e) {
e.printStackTrace();
}
// 创建系统托盘
FXTrayIcon fxTrayIcon = new FXTrayIcon(stage, url);
// 添加系统托盘菜单
MenuItem openItem = new MenuItem("打开");
fxTrayIcon.addMenuItem(openItem);
MenuItem exitItem = new MenuItem("退出");
fxTrayIcon.addMenuItem(exitItem);
// 为菜单添加事件处理
openItem.setOnAction(actionEvent -> {
// 最大化显示stage窗口
stage.setIconified(false);
stage.show();
});
exitItem.setOnAction(actionEvent -> {
// 退出程序
System.exit(0);
});
// 显示系统托盘
fxTrayIcon.show();
}else { // 如果不支持,关闭窗口直接退出程序
System.exit(0);
}