キー入力

 

どのキーが押されたかを判定する。


【文法】
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