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

J2ME 程式設計範例:數字鍵盤事件測試與 Canvas 按鍵處理實作

     編輯:Java 程式設計入門

前言

Canvas 提供 keyPressed(int keyCode) 回呼處理實體按鍵事件。本文以最小範例示範:建立 MIDlet 啟動自定義 Canvas,按下數字鍵即時顯示鍵名於畫面。

完整程式碼

主 MIDlet:liuy002.java

package example.liuy.liuy002;

import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class liuy002 extends MIDlet {
    protected void startApp() throws MIDletStateChangeException {
        Display d = Display.getDisplay(this);
        d.setCurrent(new keytest());
    }
    protected void pauseApp() {}
    protected void destroyApp(boolean flag) throws MIDletStateChangeException {}
}

自定義 Canvas:keytest.java

package example.liuy.liuy002;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;

public class keytest extends Canvas {
    private String msg = "[請按鍵]";

    protected keytest() { super(); }

    protected void paint(Graphics g) {
        g.drawString(msg, 10, 10, Graphics.TOP | Graphics.LEFT);
    }

    protected void keyPressed(int keyCode) {
        msg = "數字 " + getKeyName(keyCode) + " 已被按下";
        repaint();
    }
}

關鍵技術點

  • Canvas 繼承自 Displayable,可直接設為當前顯示。
  • getKeyName(int keyCode) 將鍵碼轉為可讀字串 (如 "1", "2", "STAR", "POUND")。
  • repaint() 觸發 paint() 重繪。
  • 數字鍵碼對應:Canvas.KEY_NUM0 ~ KEY_NUM9,亦可直接用 getKeyName。
  • 功能鍵 (上下左右、選擇、軟鍵) 亦有對應常數,遊戲開發常用 getKeyStates() 輪詢狀態。

擴充建議

  • 加入 keyReleased、keyRepeated 處理長按/釋放邏輯。
  • 結合 Graphics 繪製按鍵視覺回饋。
  • 對於遊戲,建議使用 GameCanvas (MIDP 2.0) 獲得雙緩衝與按鍵狀態輪詢。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved