我编写了一个应用程序,您可以在其中左右拖动某个时间线。 当我拖动时,我知道这是一个 mouseDragged 事件。由于我将鼠标光标移到组件之外,它会停止拖动,但我不希望这样。
所以我想以某种方式锁定该组件上的 mouseDragged 事件,但是如果我将光标移到组件之外,我将不再收到 mouseDragged 事件。
我该如何解决这个问题?我的同事告诉我有一些像captureMouse这样的功能。
最佳答案
我认为捕获鼠标并不是一个好主意。我也不认为这对于您想要的东西是必要的。
根据我的经验,即使您将鼠标移到组件区域之外,mouseDragged() 事件也能正常工作:它将继续报告组件内最接近组件外部鼠标位置的 X 和 Y 位置,但它不会像释放左键一样终止鼠标拖动。
如果您的应用程序的行为不同,也许您的鼠标处理中存在不同的错误?
例如,尝试一下本页中间的小程序:您将看到可以开始拖动矩形并将鼠标移到小程序区域之外,它将继续工作: http://www.dgp.toronto.edu/~mjmcguff/learn/java/04-mouseInput/
(我不知道上面代码的作者;这只是我通过搜索 java applet mousedragged 找到的第一个代码。)
关于java - 鼠标退出java时的锁定事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4124142/