我正在使用Java开发一个Swing应用程序。该程序要在专用的Windows 7触摸屏设备上运行,并且据我所知,在正常操作下,这个程序应该是唯一运行的程序。
我注意到Windows 7的触摸屏界面有一个问题,它会阻止mousedown事件。由于“轻点并按住右键”手势,Windows 7在以下情况下才会发送鼠标按下事件:
- 用户“抬起”(将手指从屏幕上提起,此时会同时发送down和up事件)
- 移动他们的手指(此时点击变成拖动)
- 或者右键圆形手势超时(大约5-6秒后)
显然,这意味着在发送鼠标按下事件之前按钮不会出现按下状态(而且只有轻点的情况下根本不会出现按下状态)。但是,最近,更严重的是,需要长时间按住的功能无法实现,这对普通用户来说会造成很大的混乱。
在开发的这个时候,要从头开始使用其他问题中提供的多种触摸库已经太迟了。(它们需要在它们的组件层次结构中重新编写整个应用程序,这根本不可行。此外,使用鼠标事件编码的东西将不得不使用触摸事件重新编码,而我们真的不需要多点触摸...)
是的,我尝试简单地关闭触摸并按住右键手势。不幸的是,这样做仅仅禁用了在手指周围绘制表示右键手势的圆形,并触发了随后的右键单击。它没有解决潜在的问题:最多延迟六秒的鼠标按下事件。
我的问题: 有没有一种方法:
- 最好能够告诉Windows我的应用程序是支持触摸的应用程序,以便它立即发送事件(但我想,仍然发送鼠标事件而不是触摸事件)?我可以看到内置的软键盘正常工作,似乎没有问题。我只希望我的Java应用程序也能做到这一点。
- 完全禁用计算机上的延迟,但仍提供基本的触摸功能?
- 可能只是像这个问题那样简单,它似乎在询问相同的现象,但是使用的是Java语言?