Canvas に制御されている状態で, 人間がキーを押した場合に, それに反応してアプリに何かさせることを考えましょう.
アプリが他の処理を行っている途中でも, キーが押されたり離されたりした(イベントが発生した)ときには割り込みが発生し,
このことを用いて, 特定のイベントが発生したときに, 文字列を表示するプログラムのサンプル KeyEventSample を示します.
cat Sample.javah | cpp -P -C -DMIDP=1 | nkf -sc | cat -s > Sample.javaなどとして, それぞれの source を生成しています. DOJA Builder/MIDP Builder のプリプロセッサでも, わずかな変更(#if と #endif の間に #define を書けないことに対応する)でこのような source を処理できます.
さらに, 任意のイベントが発生したときに, その内容を文字列で説明するプログラムのサンプル CanvasKeySample を示します.
cat Sample.javah | cpp -P -C -DMIDP=1 | nkf -sc | cat -s > Sample.javaなどとして, それぞれの source を生成しています. DOJA Builder/MIDP Builder のプリプロセッサでも, わずかな変更(#if と #endif の間に #define を書けないことに対応する)でこのような source を処理できます.
DoJa では Canvas クラスの int getKeypadState() メソッドを使うと, 2個以上の key の同時押しも検出できます.