iアプリでの入力 - Canvas のキーイベント処理

[目次|前回|次回|携帯Javaのページ ] Time-stamp: "2003/10/10 Fri 21:49 hig"

Canvas に制御されている状態で, 人間がキーを押した場合に, それに反応してアプリに何かさせることを考えましょう.

アプリが他の処理を行っている途中でも, キーが押されたり離されたりした(イベントが発生した)ときには割り込みが発生し,

このイベントハンドラのなかで, Canvas クラスの void repaint(Graphics g) メソッドを呼ぶと, そのときの変数の値に応じて Canvas クラスの void paint(Graphics g) メソッドが再度実行されて画面が描き直されます.

このことを用いて, 特定のイベントが発生したときに, 文字列を表示するプログラムのサンプル KeyEventSample を示します.

さらに, 任意のイベントが発生したときに, その内容を文字列で説明するプログラムのサンプル CanvasKeySample を示します.

DoJa では Canvas クラスの int getKeypadState() メソッドを使うと, 2個以上の key の同時押しも検出できます.

課題

前回の課題を思いだして, Canvas で描いたグラフィックス(例えば白地に赤い四角形)が, キー入力に応じて何か変化するプログラムを作ろう. 例えば, 適当なキーを押すと上下左右に移動するとか. 例えば, 数字キーを押すと, 画面上の8個所に何かが描かれるとか(もぐらたたき?) 例えば, 適当なキーを押すと色や形が変化するとか.