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