SystemTray 클래스를 통해 시스템 트레이에 숨겨진 응용 프로그램을 빌드했습니다. 잘 작동하지만 프로그램을 종료하고 다시 시작하면 커서로 가리 키기 전에 트레이에서 아이콘을 제거하지 않습니다. 이 여러 번 수행하면 여러 아이콘이 표시됩니다 :시스템 트레이에 여러 번 나타나는 Java 프로그램
이 내 프로그램에 문제가 아니면 그것은 윈도우의 버그?
나는 this guide을 따라 시스템 트레이 아이콘을 만들었습니다.
SystemTray 클래스를 통해 시스템 트레이에 숨겨진 응용 프로그램을 빌드했습니다. 잘 작동하지만 프로그램을 종료하고 다시 시작하면 커서로 가리 키기 전에 트레이에서 아이콘을 제거하지 않습니다. 이 여러 번 수행하면 여러 아이콘이 표시됩니다 :시스템 트레이에 여러 번 나타나는 Java 프로그램
이 내 프로그램에 문제가 아니면 그것은 윈도우의 버그?
나는 this guide을 따라 시스템 트레이 아이콘을 만들었습니다.
트레이 아이콘을 만든 응용 프로그램이 종료되면 Windows는 트레이 아이콘을 자동으로 제거하지 않습니다. 사용자가 마우스로 마우스를 가져 가면 소유 프로세스가 더 이상 존재하지 않음을 알게됩니다.
아이콘이 즉시 제거되었는지 확인하려면 프로그램 종료시 systemTray.remove(yourIcon)
으로 전화해야합니다.
시스템 트레이에는 add(java.awt.TrayIcon)
방법을 사용하여 트레이에 추가 된 하나 이상의 트레이 아이콘이 포함되어 있습니다. 그들은 remove(java.awt.TrayIcon)
방법으로 더 이상 필요하지 않을 때 제거 할 수 있습니다.
종료시 제거가 어떻게 호출되는지 확인 하시겠습니까? –
그냥 확인했지만 이전 응용 프로그램 인스턴스가 작업 관리자에서 닫혔다는 것을 확인 했습니까? – JayTee
나는 정상적으로 종료하는 대신에 충돌 할 때 그런 식으로 행동하는 많은 프로그램을 안다. @PeterLawrey와 동의합니다 : systemTray.remove (아이콘) 호출이 부족합니다. – Philipp