アットウィキロゴ

キー入力

キーボードから操作をする

  • よく配布されているゲームなんかはキーボード操作が主ですょね?
    なので今回はキーボードの入力で画面を切り替えるというものを作ってみました。
    まずはコンストラクタから見ていきます。

public MainPanel(){
	//パネルの推奨サイズを設定
	setPreferredSize(new Dimension(WIDTH,HEIGHT));
	ImageIcon icon=new ImageIcon(getClass().getResource("/image/img001.gif"));
	image=icon.getImage();
	//パネルがキーを受け付けるようにする
	setFocusable(true);
	//キーリスナーをつける
	addKeyListener(this);
}

  • 前回使ったイメージの貼り付けはそのまま使います。今回はそれに加えキーボードで操作をするための設定を入れてます。
    掲載はしてませんが、最初にKeyListenerをMainPanelクラスにimplementsしてます。KeyListenerがなぃと動きませんからね。
    そしてコンストラクタでキー入力を受け付けるようにsetFocusableをtrueに設定します。
    次はキーが押されたときの処理です。

public void keyPressed(KeyEvent e){
	int key=e.getKeyCode();
	//スペースキーが押されたら
	if(key==KeyEvent.VK_SPACE){
		//isPressをtrueに変更する
		isPress=true;
		//再描画する
		repaint();
	}
}

  • コメントで説明している通りなのですが、まず今回使用しているのはスペースキーだけです。他のキーは押しても反応しません。
    そしてスペースキーが押されたらboolean型で定義されているisPressをtrueに設定しpaintComponentに対して再描画を要求してます。

public void paintComponent(Graphics g){
	//isPressがtrueの場合
	if(isPress){
		//imageを描画する
		g.drawImage(image,0,0,this);
	}
	g.drawString("スペースキーを押してね。",WIDTH/4,HEIGHT/2);
}

  • 最後にpaintComponent側の処理です。
    最初にif文でisPressがtrueの場合とfalseの場合とで分岐させてます。
    isPressの初期設定はfalseなので実行時には画面に文字のみ表示されます。
    そしてスペースキーを押したときにisPressがtrueとなるためpaintComponent内の分岐が変わりイメージを描画します。

  • サンプルのJARファイルはスポンサーリンクの↓に張ってあるので自由にダウンロードしてくださぃ♪


最終更新:2008年06月23日 16:43
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル