我已经构build了一个通过SystemTray类隐藏在系统托盘中的应用程序。 工作正常,但是当我退出程序并重新启动时,它不会从托盘中移除图标,然后用光标将其hover。 多次执行此操作会导致出现多个图标:
这是我的程序有问题,还是Windows的错误?
我遵循本指南来创build系统托盘图标。
当创建托盘图标的应用程序终止时,Windows不会自动删除托盘图标。 它只有当用户用鼠标悬停在它上面时才会这样做,并注意到拥有的进程不再存在。
为了确保图标被立即删除,当程序退出时,你必须调用systemTray.remove(yourIcon)
。
系统托盘包含一个或多个使用add(java.awt.TrayIcon)
方法添加到托盘的托盘图标。 当remove(java.awt.TrayIcon)
方法不再需要时,它们可以被删除。