首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME 開發筆記:鍵盤事件在不同手機上的差異

     編輯:J2ME

現象觀察

測試機型:Nokia 7210、3100。發現這些機型一次只能處理一個按鍵事件。若一個鍵按下未放開,其他鍵的 keyPressed 事件不會觸發。

緩衝處理的影響

  • 四向移動邏輯:若使用獨立 if 判斷每個方向,按住 Up 再按 Left,精靈不會改變方向(因 Left 的 keyPressed 未觸發)。
  • 釋放觸發:按住 Up、按住 Left 不放、然後釋放 Up —— 此時會產生 Left 的 keyPressed 事件,精靈轉向左移。推測手機維護一個按鍵狀態隊列。

模擬器與實機差異

WTK 預設模擬器支援多鍵同時按下,若用四個並列 if 可實現斜向移動;若用 if-else 則順序決定優先權(先判 Up 則 Up 優先)。

建議

  1. 實機測試為準,模擬器行為不可全信。
  2. 若需斜向移動,考慮使用 getKeyStates() 輪詢當前按鍵狀態,而非依賴事件回呼。
  3. 針對不同機型提供配置選項或自動偵測輸入模式。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved