如何在摆动中处理多按钮印刷机?

时间:2009-07-24 13:55:39

标签: java swing events

使用手写笔摇摆时,我遇到了一些奇怪的行为。

我正在解释按下触控笔侧面的按钮(右侧)并按下触控笔(左侧)作为“抓取”事件,但偶尔(通常超过0),事件才会被丢弃。

MouseEvent的JavaDocs非常清楚如果一次执行一个按钮(左下,右下,右上),如何处理多按钮按钮,但没有说明同时按下按钮。

我不得不怀疑,它们是作为两个mousePressed事件发出的,还是作为两个按钮的按钮蒙版设置发出的事件,还是完全不同的事情?

感谢。

3 个答案:

答案 0 :(得分:1)

我将API文档解释为根本无法同时按下按钮:

  

当按下多个鼠标按钮时,每次按下,释放和单击都会导致单独的事件。

所以 应该是单独的事件。您观察到的问题可能是由于您的代码,手写笔的驱动程序,硬件或Swing中的错误(我看到它的可能性递减顺序:)

如果可能的话,我会尝试通过记录不同级别的事件来诊断问题。

答案 1 :(得分:1)

同时按下按钮作为两个单独的mousePressed事件处理。运行Mouse Events Demo以查看它们是否单独处理。

答案 2 :(得分:0)

我记得,没有办法同时按下按钮。我曾经做过以确保一次按下多个按钮被视为这样的是我会为每个按钮设置一个布尔变量,当它被按下时,我会将其设置为true,当它被释放时,我会设置布尔值为false。然后,当执行操作时,我会检查布尔变量(有时我会将actionlistener重定向到方法调用,以确定在设置布尔值之后接下来会发生什么操作)。如果您想要做的唯一事情就是在同一时间按下它们,那么这不起作用,但如果您只是想让组合起作用,那么我就是这样做的。这是大约4年前,在Java 5之前,所以我可能错了。