为了改善我的应用程序的用户体验,我想区分用户不同的鼠标滚动速度和数量,并采取相应的措施来提高我的GUI用户的自由度,我如何分析它?
发布于 2012-08-29 07:21:29
Robert Harvey在评论中提出了一个很好的建议,但还不够深入。传递给MouseWheelListener.mouseWheelMoved的MouseWheelEvent包含一些属性,除了事件之间的时间之外,您应该考虑这些属性。具体地说:
从MouseWheelEvent.getPreciseWheelRotation.
第一个方法是MouseWheelEvent.getPreciseWheelRotation,它返回用户旋转鼠标的点击次数,并将高分辨率鼠标和触控板考虑在内。此数字的绝对值越高,用户滚动鼠标的速度就越快。
这些方法中的第二个是MouseWheelEvent.getScrollAmount,它告诉系统设置用户的操作系统使用的滚动速度。使用Windows控制面板或其他平台上的类似工具,用户可以设置滚轮影响界面更改的速度。如果用户设置了非常快的滚轮,您可能应该将中速滚动计算为与另一个平台上的非常快的滚动相同。用户要求更快地滚动,所以你的应用程序应该尊重这一点。
当然,您应该保留最后一个滚动事件的时间(您可以使用System.currentTimeMillis()或System.nanoTime()来测量时间增量),并且滚动事件之间的间隔越短,通常意味着滚动速度越快。一种可能的解决方案是跟踪用户在某个恒定的时间段内移动鼠标的总点击次数,例如0.1秒或0.05秒,并基于滚动轮点击的累积次数而不是每个事件中发生的点击次数来进行交互。
https://stackoverflow.com/questions/12168719
复制相似问题