2012-03-14 5 views
2

ウィンドウが閉じているときにシステムトレイにアプリケーションを追加したい(Googleトークアプリケーションと同様)そして、システムトレイのオンアイコンをクリックすると、アプリケーションウィンドウが再度アクティブになります。 Javaでこれをどうやって行うことができますか?あなたがDefaultCloseOperationsを設定しているシステムトレイにアプリケーションを追加する方法

final SystemTray tray = SystemTray.getSystemTray(); 
Image image = Toolkit.getDefaultToolkit().getImage("images.jpg"); 
final TrayIcon trayIcon = new TrayIcon(image); 
try { 
    SystemTray.getSystemTray().add(trayIcon); 
} catch (AWTException e2) { 
    e2.printStackTrace(); 
} 

this.addWindowStateListener(new WindowStateListener() { 
    public void windowStateChanged(WindowEvent e) { 
     if (e.getNewState() == EXIT_ON_CLOSE) { 

     trayIcon.addMouseListener(new MouseAdapter() { 
      public void mouseClicked(MouseEvent e) { 
       setVisible(true); 
      } 
     }); 
     setVisible(false); 
     } 
    } 
}); 
+0

[システムトレイにJavaアプリケーションを配置するにはどうすればいいですか?](http:// stackoverflow .com/questions/758083/how-do-i-put-a-java-app-in-the-system-tray) – MByD

答えて

3

は正しく

myFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE) 

このコード行は、私は答えを得ただけmyFrame.setVisible(true)

+0

これに感謝します。私は復元するためにポップアップを使用していません。システムトレイのアイコンをクリックすると、ログインウィンドウが開きます。 – Vinay

+1

[システムトレイのアイコンにMouseListenerを追加](http://stackoverflow.com/a/8460383/714968) – mKorbel

+0

ええ、ありがとう。 – Vinay

2

呼び出すことJPopupMenuからJFrameの復元のために、その後、myFrame.setVisible(false)と同じです。今すぐ閉じてウィンドウを閉じると、システムトレイのアイコンをクリックすると再びウィンドウが開きます

Image image = Toolkit.getDefaultToolkit().getImage("src/resources/ChatIcon1.jpeg"); 
    final TrayIcon trayIcon = new TrayIcon(image); 
    trayIcon.setToolTip("OfficeCommunicator"); 
    try { 
     SystemTray.getSystemTray().add(trayIcon); 
    } catch (AWTException e2) { 
     e2.printStackTrace(); 
    } 


       trayIcon.addMouseListener(new MouseAdapter() { 
        public void mouseClicked(MouseEvent e) { 
         trayIcon.displayMessage("hi", "You Opened Me Again", TrayIcon.MessageType.INFO); 
         setVisible(true); 
        } 
       }); 
} 
+0

は正しい+1 – mKorbel

関連する問題