どのキーが押されたかを判定する。
【文法】
import java.awt.event.KeyListener; import java.awt.event.KeyEvent; public class ○○○ extends Applet implements KeyListener{ public void init(){ addKeyListener(this); } public void keyPressed(KeyEvent ke){ } // キーを押す public void keyTyped(KeyEvent ke){ } // キーを押して離す public void keyReleased(KeyEvent ke){ } // キーを離す public void paint( Graphics g){ } }
【例】←キーが押されたら「左キーが押された」、→キーが押されたら「右キーが押された」と表示する import java.applet.*; import java.awt.Graphics; import java.awt.event.KeyListener; import java.awt.event.KeyEvent; public class KeyInput0 extends Applet implements KeyListener{ public void init(){ addKeyListener(this); } public void keyPressed(KeyEvent ke){ // キーを押す if (ke.getKeyCode() == ke.VK_LEFT){ System.out.println("左キーが押された"); } else if (ke.getKeyCode() == ke.VK_RIGHT){ System.out.println("右キーが押された"); } repaint(); }// end of public void keyPressed public void keyTyped(KeyEvent ke){ } // キーを押して離す public void keyReleased(KeyEvent ke){ } // キーを離す public void paint( Graphics g){ } }
【注意】 3つのキーイベント
public void keyPressed(KeyEvent ke){ }
public void keyTyped(KeyEvent ke){ }
public void keyReleased(KeyEvent ke){ }
は、使わないものがあっても全て記述しておく必要がある。
3つのイベントが記述されていないとエラーが出る。
【問題】 上の例をdrawStringを用いて書き直しなさい。 (ヒント)文字の表示はこちらを参照 実行例
【問題】 ←キーを押したら乱数を発生させ、その値を表示するようにしなさい。
(ヒント)乱数の発生方法はこちらを参照
実行例
【問題】
スロットマシンのプログラムを数字の1,2,3を押したら値が決定するように修正しなさい。
実行例
カーソルキー
→ : ke.VK_RIGHT
← : ke.VK_LEFT
↑ : ke.VK_UP
↓ : ke.VK_DOWN
SPACE : ke.VK_SPACE
ENTER : ke.VK_ENTER
SHIFT : ke.VK_SHIFT
ALT : ke.VK_ALT
CONTROL: ke.VK_CONTROL
数字の 0〜9 : ke.VK_0 〜 ke.VK_9
アルファベットの A〜Z : ke.VK_A 〜 ke.VK_Z