4

我已经通过 SystemTray 类构建了一个隐藏在系统托盘中的应用程序。工作正常,但是当我退出程序并重新启动它时,它不会在将光标悬停之前从托盘中删除图标。多次执行此操作会导致出现多个图标:

在此处输入图像描述

这是我的程序的问题还是 Windows 的错误?

我按照本指南创建系统托盘图标。

4

2 回答 2

6

当创建托盘图标的应用程序终止时,Windows 不会自动删除托盘图标。只有当用户将鼠标悬停在它上面并注意到拥有进程不再存在时,它才会这样做。

为确保立即删除图标,您必须systemTray.remove(yourIcon)在程序退出时调用。

于 2012-12-30T16:05:16.730 回答
1

系统托盘包含一个或多个托盘图标,使用该add(java.awt.TrayIcon)方法将这些图标添加到托盘中。remove(java.awt.TrayIcon)当该方法不再需要它们时,可以将它们删除。

于 2012-12-30T16:06:00.940 回答