2010-08-27 48 views
0

我使用JComponent.setToolTipText來獲取我的Java應用程序中的工具提示,但與例如eclipse不同,如果在顯示提示時切換到另一個應用程序,它仍然懸停在我所在的位置直到我切換返回到java應用程序並在返回到備用應用程序之前移動鼠標以將其從元素上移開。有沒有辦法讓我的應用程序中的工具提示更好的公民?當應用程序失去焦點時讓它們消失?通過應用程序切換使java工具提示消失

我在Mac上,如果相關。

+0

你使用輕量級或重量級的工具提示嗎? [使用TooTipManager.sharedInstance()。isLightWeightPopupEnabled()進行檢查,或者使用同級setLightWeightPopupEnabled(布爾值)進行設置。] – 2010-08-29 00:49:22

+0

輕量級。我更喜歡哪個?每個人有沒有優點和缺點? 我試着將它與setter切換爲false,但沒有看到變化。 – 2010-09-03 15:08:50

回答

0

我找到了解決方案! (來自同事的一些輸入)

<myJFrame>.addWindowFocusListener(new WindowFocusListener() { 

     @Override @SuppressWarnings("unused") 
     public void windowLostFocus(WindowEvent e) { 
      ToolTipManager.sharedInstance().setEnabled(false); 
     } 


     @Override @SuppressWarnings("unused") 
     public void windowGainedFocus(WindowEvent e) { 
      ToolTipManager.sharedInstance().setEnabled(true); 
     } 
    }); 

WindowAdapter偵聽windowActivated/Deactivated也有效。 一個普通的FocusListener沒有。