2016-10-17 7 views
0

システムトレイにカーソルを置いてJavaでバルーンを開きますか?私はツールチップを開くことができますが、バルーンを開くことはできません。システムトレイに移動してJavaでバルーンを開きます

しかし、私は右のアイコンをクリックするとのactionPerformedを行うと、あなたはいつものMouseListenerとのMouseMotionListenerでツールチップの動作を自分でエミュレートできるバルーンを開くために

trayIcon.displayMessage(title, message, TrayIcon.MessageType.INFO)

答えて

0

これを行うことができます。

String message = "Application running"; 

int hoverTime = 1000; 
Timer messageTimer = new Timer(hoverTime, 
    e -> trayIcon.displayMessage(null, message, 
     TrayIcon.MessageType.INFO)); 
messageTimer.setRepeats(false); 

trayIcon.addMouseListener(new MouseAdapter() { 
    @Override 
    public void mouseEntered(MouseEvent event) { 
     messageTimer.restart(); 
    } 

    @Override 
    public void mouseExited(MouseEvent event) { 
     messageTimer.stop(); 
    } 
}); 
trayIcon.addMouseMotionListener(new MouseMotionAdapter() { 
    @Override 
    public void mouseMoved(MouseEvent event) { 
     messageTimer.restart(); 
    } 
}); 

Timerは、前者がAWTイベントディスパッチスレッドでそのアクションが実行されることを保証しているため、java.util.Timerではなくjavax.swing.Timerです。

関連する問題