我正在开发Java中的Swing应用程序。该程序将在专用的Windows 7触摸屏机器上运行,据我所知,这个程序应该是在正常运行下运行的唯一程序。Windows 7触摸屏+ Java Swing =延迟鼠标事件
我注意到Windows 7的触摸屏界面有这个东西,它会阻止mousedown事件。由于“点击并按住右键”手势,Windows 7将不会实际发送应用程序鼠标停止事件,直到:
- 用户“touch ups”(抬起手指触摸,在该点既向下和向上被发送)
- 移动其手指(在该点的点击成为拖动)
- 或右点击圆手势超时(后约5-6秒)
简而言之,这意味着在发送鼠标按下事件之前,按钮不会在应用程序中显得沮丧(并且永远不会拖拉用快速的水龙头完全压抑)。但是,最近更严重的是,这意味着功能需要按住不会产生,而不会对普通用户造成大量混淆。
公司在发展这一点上远来不及转身,并从头开始对其他问题提供了许多触摸库的一个开始。 (他们要求重做整个应用程序的组件层次结构,这根本是不可行的。另外,使用鼠标事件编码的东西必须使用触摸事件进行重新编码,而且我们并不需要多点触摸。 ..)
是的,我试图简单地关闭触摸并按住右键单击手势。不幸的是,这样做只是禁用绘制一个圆圈,指示手指周围的右击手势和后续右键点击。它不能消除潜在的问题:延迟的鼠标停止事件最多六秒钟。
我的问题:有没有一种办法:
- 理想的情况下,指示窗口我的应用程序是触摸准备程序,从而可以立即发送关闭事件(不过,我想,还是送鼠标事件而不是触摸事件)?看来,内置的软键盘可以正常工作。我只想让我的Java应用程序也这样做。
- 完全禁用计算机上的延迟,但仍提供基本的触摸功能?
- 可能像this question, which seems to be asking about the same phenomenon那样简单,但在Java中?
我遇到了同样的问题,您是否在此期间找到了解决方案? –
不,我不幸找到了解决方案;如果有的话,我会在这里发布。我不得不放弃按钮的按住功能。我可以建议的最多的是使UI元素有问题需要拖动而不是按住,因为拖动操作至少可以让点击通过。 :/ – Tustin2121
谢谢。我正在使用JOGL2开发OpenGL应用程序。当我使用一个Swing窗口时,我会遇到与您一样的有问题的鼠标行为。但是,如果我使用NEWT窗口,它会毫无延迟地报告鼠标按键,所以我认为NEWT有一种方法可以告诉操作系统无延迟地报告事件。 –