Java程序出现在系统托盘多次

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

在这里输入图像说明

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

我遵循本指南来创build系统托盘图标。

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

为了确保图标被立即删除,当程序退出时,你必须调用systemTray.remove(yourIcon)

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