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

J2ME 觸控螢幕開發啟用與事件處理實戰

     編輯:J2ME

在 WTK 模擬器上啟用觸控支援驚人地簡單:修改裝置屬性檔即可。本文說明啟用步驟,並實戰示範如何在 Canvas 中處理 pointerPressed、pointerReleased、pointerDragged 三大觸控事件,實作軟鍵區域與選單點擊判定。

啟用觸控模擬器

  1. 找到 WTK 安裝目錄下的裝置屬性檔:
    WTK22\wtklib\devices\DefaultColorPhone\DefaultColorPhone.properties
  2. 將 touch_screen=false 改為 touch_screen=true。
  3. 重新啟動模擬器,即可模擬觸控輸入。

MIDP 2.0 觸控事件

方法觸發時機參數
pointerPressed(int x, int y)手指按下螢幕螢幕座標
pointerReleased(int x, int y)手指離開螢幕螢幕座標
pointerDragged(int x, int y)手指在螢幕上滑動螢幕座標

實戰:軟鍵與選單點擊判定

protected void pointerPressed(int x, int y) {
    switch (currentState) {
        case STATE_MENU: // 主選單:左側 90px 寬、底部 10 項 × 17px
            if (x < MENU_WIDTH &&
                y > screenHeight - (MENU_ITEM_H * MENU_COUNT + MENU_BAR_H)) {
                int index = (y - (screenHeight - (MENU_ITEM_H * MENU_COUNT + MENU_BAR_H))) / MENU_ITEM_H;
                doMenuAction(index);
            }
            break;

        case STATE_LIST:
        case STATE_SEARCH:
        case STATE_MAP:
            // 左軟鍵區域:左下 40×20
            if (x < 40 && y > screenHeight - 20) doLeftSoftkey();
            // 右軟鍵區域:右下 40×20
            if (x > screenWidth - 40 && y > screenHeight - 20) doRightSoftkey();
            break;
    }
}

實作要點

  • 座標系統: 原點 (0,0) 在螢幕左上角,X 向右、Y 向下。
  • 狀態機: 用 currentState 區分畫面,針對不同 UI 佈局計算點擊區域。
  • 釋放事件: 若需區分「點擊」與「長按」,可在 pointerReleased 配合時間差判斷。
  • 拖曳應用: 地圖平移、列表滑動等均可在 pointerDragged 累加位移量處理。

測試建議

  1. 先在模擬器滑鼠點擊驗證座標邏輯。
  2. 真機測試時注意解析度差異,建議以螢幕寬高比例計算區域而非硬編碼像素。
  3. 若裝置支援多點觸控,MIDP 2.0 單點 API 只會回報主要觸控點。

掌握這三個事件與座標判定,即可在 J2ME 上打造直覺的觸控介面,無需依賴第三方 UI 框架。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved