2010-08-27 44 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没有。