当前位置: 首页 > 面试题库 >

如何在Java中延迟MouseOver?

阎经武
2023-03-14
问题内容

我有一个简短的问题,希望有人能帮助我。

请查看以下代码片段:

public void mouseEntered(MouseEvent e){
   //wait 2 seconds.
   //if no other mouseEntered-event occurs, execute the following line
   //otherwise restart, counting the 2 seconds.
   foo();
}

有人可以帮我解决这个问题吗?我想实现一种类似“工具提示”的行为:您用鼠标输入一个区域。如果鼠标停留在该位置,请执行某些操作。


问题答案:

在您的方法中延迟2秒启动计时器,该计时器mouseEntered()将调用您想要执行的任何操作。

设置一个新的处理程序(mouseExited()),如果该计时器尚未关闭,则将其停止。

基本上,您知道如果mouseExited()尚未调用鼠标,鼠标仍会在那里。计时器将在两秒钟内关闭以执行您想要的操作,或者如果鼠标退出则将其取消。



 类似资料:
  • 问题内容: 因此,在这段代码中: 似乎在FileConverter方法尚未完成调用之前,消息对话框窗口弹出窗口的速度就太快了。我想知道JOptionPane的放置是否正确,或者是否可以将消息延迟到该方法完成处理之前? 问题答案: 您可以使用SwingWorker。 在这里看看Java教程。

  • 问题内容: 我正在尝试用Java做某事,而我需要一些东西在while循环中等待/延迟几秒钟。 我想构建一个步进音序器,并且对Java还是陌生的。有什么建议么? 问题答案: If you want to pause then use java.util.concurrent.TimeUnit: TimeUnit.SECONDS.sleep(1); TimeUnit.MINUTES.sleep(1);

  • 我正在尝试用Java做一些事情,我需要在while循环中等待/延迟几秒钟。 我想构建一个step sequencer,我是Java新手。有什么建议吗?

  • 问题内容: 我在延迟游戏中电脑的移动时遇到问题。 我找到了一些解决方案,但在我的情况下它们不起作用,例如 我试图将此与功能一起使用,但也没有任何效果。 还有其他可能性吗? 问题答案: 迅捷3 使用GCD: 或使用计时器: 迅捷2 使用GCD: 或使用计时器:

  • 问题内容: 我做了一个二十一点游戏,我想让AI播放器在两张牌之间暂停一下。我尝试仅使用Thread.sleep(x)进行尝试,但这会使冻结,直到AI播放器拿走了他所有的卡。我知道Swing不是线程安全的,所以我看了Timers,但是我不明白如何使用它。这是我当前的代码: BTW,hit(); 方法更新GUI。 问题答案: 好吧,下面的代码显示了一个带有JTextArea和JButton的JFram

  • 问题内容: 我想在更改背景之间的命令之间设置延迟。我尝试使用线程计时器,并尝试使用运行和捕获。但这不起作用。我试过了 但这只是变成黑色。 问题答案: 试试这个代码: