JToolTip显示时怎么才能设置不消失或是设置一个消失时间?
有个问题就是JToolTip显示出来后,当我的鼠标移动后,马上就又消失了,怎么快速移动鼠标也点不到
JToolTip上的按钮?真晕啊

解决方案 »

  1.   

    javax.swing.ToolTipManagerToolTipManager.sharedInstance().setDismissDelay(10*1000); // 停10秒
      

  2.   

    我觉得lz设计上有问题,
    JToolTip就是为了显示提示信息的.
      

  3.   

    另外一楼的代码,是指鼠标停留在控件上JToolTip显示的时间,超过这个时间JToolTip自动消失掉.
    但是鼠标移出控件,无论如何JToolTip都会消失,否则就不叫JToolTip了...
      

  4.   

    首先谢谢一楼的了,应该有用。然后回答一下楼主的问题。要想点到可以这样:
    在重写的JToolTip类里加入鼠标进入和离开的监听器,如下
      addMouseListener(new MouseAdapter() {
       public void mouseEntered(final MouseEvent e) {
        try {
         wait();
        } catch (InterruptedException e1) {
         // TODO 自动生成 catch 块
         e1.printStackTrace();
        }
       }
       public void mouseExited(final MouseEvent e) {
        this.notify();
       }
      });
    其中的wait()和notify()取出之后也没有什么影响,情况是一样的。
    另外还有一种方法是这样,就是将这个监听器加入到这个重写的JToolTip的panel(不知道你有没有添加JPanel)里,这样效果似乎是一样的,你可以多试验一下(记得把实验结果给我说一下哦)。
      

  5.   

    想到一个比较无赖的方法,先将延时设置很久(几个小时吧,o(∩_∩)o...),然后在鼠标一开始再设为0,如下
    ToolTipManager.sharedInstance().setDismissDelay(60*60*1000); 
    panel.addMouseListener(new MouseAdapter() {
    public void mouseEntered(final MouseEvent e) {

    }
    public void mouseExited(final MouseEvent e) {
    ToolTipManager.sharedInstance().setDismissDelay(0);
    }
    });
    似乎还有一些问题,慢慢研究吧