2013-04-19 5 views
5

적색 십자가를 누르면 시스템 트레이로 축소되는 Java 응용 프로그램이 있습니다.Java의 TrayIcon 메시지가 사라지는 방법?

언제든지 응용 프로그램이 시스템 트레이에서 실행 중임을 사용자에게 알리는 메시지를 표시합니다. 메시지가 사라 순간

... 

    @Override 
    public void windowClosing(WindowEvent e) { 
     try { 
      tray.add(trayIcon); 
      trayIcon.displayMessage("", "The application has been reduced 
       in the system tray, to stop it, press the \"Quit\" button", 
       TrayIcon.MessageType.WARNING); 
      setVisible(false); 
     } catch (AWTException ex) { 
      System.out.println("unable to add to tray"); 
     } 
    } 
... 

사용자가 클릭 할 경우 :

는 여기에 대한 코드입니다.

아무 것도 수행되지 않아도 몇 초 후에 메시지가 사라질 수 있도록 카운터를 설정하고 싶습니다.

누구나 그 좋은 방법을 알고 그것을 위해 기존의 방법을 찾을 수없는 것 때문에 발생할 수 있습니다.

편집은 내가 조금 이상을 테스트 한 후, 사실, 내 질문을 해결하는 데

, 자동,의 말 7-8초하자, 후 페이드 아웃 그러나 나는 조금 너무 그것을 발견 긴. 또한 사용자가 동작 (마우스를 움직이거나 키보드로 입력)을 실행하는 경우에만 사라집니다.

새 질문은 다음과 같습니다. 페이드 아웃 시간을 줄이고 구성하여 메시지 동작을 변경하는 방법이 있습니까? Java 응용 프로그램 또는 Windows 고유의 기능입니까?

답변

3

그럼 새로운 질문이 될 것입니다. 시간을 줄이기위한 방법이 있습니까? Java 응용 프로그램을 구성하거나 Windows에 고유합니까?

  • MSDN says in part How long to notify - Windows Vista에서 을하고 나중에는 알림 9 초 고정 기간 동안 표시됩니다.

  • 변경 사항은 Windows 크기를 유지하는 것이 가능하지만, 유효처럼/모든 messagess


    당신이 자신의 Traslucent되는 JDialog를 생성하기 위해 할 수있는
  • 적용 보인다 (투명성 수 또한 왼쪽 하단에 프로그래밍 방식으로 배치 된 스윙 타이머에서
+1

과 같은 어쩌면 다음과 같이 호출됩니다. ['AlphaTest'] (http : // stacko verflow.com/a/2234020/230513)? – trashgod

+0

개인 JDialog를 만들 수 있지만 사용자가 작업 표시 줄을 설정 한 위치에 따라 위치가 달라야하므로 작은 동작을 변경하기 만하면됩니다. 표준 TrayIcon 메시지를 계속 사용하겠습니다. 그러나 나는 그것이 정답이라고 생각하기 때문에 여전히 냄비를 대답으로 표시 할 것입니다. – Padrus

+1

@Padrus GraphicsEnvironment가 픽셀 비율과 작업 표시 줄 높이를 반환하거나 JFrame.getExtendedSize에서 계산할 수 있기 때문에이 위치는 계산하기가 매우 간단합니다. – mKorbel