爲了改善用戶在我的應用程序中的體驗,我喜歡區分用戶不同的鼠標輪速和數量,並採取相應的行動來提高我的GUI用戶freindlyness,我如何分析它?區分快慢輪滑
區分快慢輪滑
回答
羅伯特·哈維使得在評論一個很好的建議,但它並沒有遠遠不夠。傳遞給MouseWheelListener.mouseWheelMoved的MouseWheelEvent包含幾個屬性,您應該在事件之間的時間之外考慮這些屬性。具體來說:
- 從MouseWheelEvent.getPreciseWheelRotation返回的點擊次數。
- 用戶要爲每次點擊滾動,通過MouseWheelEvent.getScrollAmount返回的量。請注意,除非MouseWheelEvent.getScrollType。除非此方法返回MouseWheelEvent.WHEEL_UNIT_SCROLL,否則MouseWheelEvent.getScrollAmount返回未定義的值。
這些方法中的第一個MouseWheelEvent.getPreciseWheelRotation返回用戶旋轉鼠標的點擊次數,並將高分辨率鼠標和觸控板考慮在內。該數字的絕對值越高,用戶滾動鼠標的速度越快。
第二種方法MouseWheelEvent.getScrollAmount告訴系統設置用戶的操作系統使用滾動速度。使用Windows控制面板或其他平臺上的類似工具,用戶可以設置滾輪影響界面更改的速度。如果用戶設置了一個非常快的滾輪,則應該將中速滾動計爲與另一個平臺上的快速滾動相同。用戶要求更快速地滾動,所以您的應用應該尊重這一點。
當然,您應該保留最後一次滾動事件的時間(您可以使用System.currentTimeMillis()或System.nanoTime()來測量時間增量),滾動事件之間的間隔越短,意味着滾動速度越快。一種可能的解決方案是跟蹤用戶在一段時間內(例如0.1或0.05秒)移動鼠標的總點擊次數,並且基於滾動點擊累計次數而不是點擊次數發生在每個事件中。
謝謝,一個漂亮的滾動處理函數的建議公式是什麼,它取決於變量x,即每o.1秒鐘的點擊次數?比如我應該每0.1秒滾動多少dpi,取決於用戶在那段時間點擊了多少?如果你添加一個答案,你的答案將是完美的 –
@OfekRon我對你的問題有兩個答案。首先,你不應該自己滾動內容 - 你應該使用一個內置的控件爲你做這件事(一個例子是[JScrollPane](http://docs.oracle.com/javase/7/docs/api/用於Swing的javax/swing/JScrollPane.html)。開發Swing的人爲了正確滾動而投入了大量工作。其次,如果你不滾動內容,滾動的速度取決於你的應用程序。例如,如果你正在編寫一個遊戲,用戶可以使用滾輪跳躍,那麼你應該嘗試一些不同的跳躍高度,並選擇最好的。 –
- 1. 快速排序3路分區太慢
- 2. 快速平滑滾動鼠標滾輪
- 3. 快速轉換分段滑雪區域鄰接圖(RAG)
- 4. 滑出分區縮放
- 5. 慢速/快速I/O設備的輪詢與中斷
- 6. 如何區分自動滑動和單擊幻燈片自舉輪播?
- 7. 3分區快速排除
- 8. Lomuto分區快速排序
- 9. 輪胎ActiveModel回調慢
- 10. Spring集成輪詢太慢
- 11. 快速排序:分區分析
- 12. jQuery的旋轉輪 - 平滑
- 13. wordpress引導滑塊輪播
- 14. SQL Server 2008中慢速表,表分區
- 15. Spark DataFrame - 最後分區收集緩慢
- 16. 區分滑動並點擊角度
- 17. 劃分滑塊值到範圍區段
- 18. hammerJs - 區分滑動和拖動
- 19. 如何減慢分配的滾輪動作?
- 20. 鏈輪不與Sinatra爽快
- 21. 快速按鈕的輪廓
- 22. html5視頻:最快最快和最慢的慢動作?
- 23. 設置D3 svg.transition從慢到快到慢
- 24. jquery菜單滑動太慢?
- 25. 如何減慢Flowslider滑塊?
- 26. 正確分區快速排序
- 27. Python 3路分區(快速排序)
- 28. 快速排序分區不編譯
- 29. 快速排序幫助 - 分區
- 30. Python OpenCV2:按輪廓區域排序輪廓和樹狀分層結構
您使用哪種框架與鼠標交互?搖擺? AWT? GWT(即實際上不是Java而是JavaScript)?還有別的嗎? –
即時通訊使用java.awt.event.MouseWheelListener;我應該使用不同的嗎? –
只要您的應用程序使用AWT或Swing編寫,MouseWheelListener沒有任何問題。的確,這是AFAIK的首選方式。 –