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