1

为了改善我的应用程序的用户体验,我喜欢区分用户不同的鼠标滚轮速度和数量,并采取相应的行动来提高我的 GUI 用户友好性,我该如何分析它?

4

1 回答 1

0

罗伯特哈维在评论中提出了一个很好的建议,但还远远不够。传递给MouseWheelListener.mouseWheelMoved 的 MouseWheelEvent包含一些属性,您应该在事件之间的时间之外考虑这些属性。具体来说:

这些方法中的第一个,MouseWheelEvent.getPreciseWheelRotation,返回用户旋转鼠标的点击次数,将高分辨率鼠标和触控板考虑在内。这个数字的绝对值越高,用户滚动鼠标的速度就越快。

这些方法中的第二个,MouseWheelEvent.getScrollAmount,告诉系统设置用户的操作系统用于滚动速度。使用 Windows 控制面板或其他平台上的类似工具,用户可以设置滚轮影响界面变化的速度。如果用户设置了一个非常快的滚轮,您可能应该将中等速度的滚动视为与另一个平台上的非常快的滚动相同。用户要求滚动得更快,所以你的应用应该尊重这一点。

当然,您应该保留最后一次滚动事件的时间(您可以使用System.currentTimeMillis()System.nanoTime()来测量时间增量),并且滚动事件之间的较短间隔通常意味着更快的滚动。一种可能的解决方案是跟踪用户在某个恒定时间段内(例如 0.1 或 0.05 秒)移动鼠标的总点击次数,并将交互基于滚轮点击的累积次数,而不是滚动的点击次数。发生在每个事件中。

于 2012-08-28T23:21:29.357 回答