下記のコードを実行すると、何かキーを押した時にBの画像が表示されることを予想していたのですが、実際に試してみると何も変わりません。キーを押した時にimgが1になってはいるようですが、MainPanelクラスへ渡せていないようです。どうすれば改善できるでしょうか?
java
1import java.awt.*; 2import java.awt.event.*; 3import javax.swing.*; 4import javax.swing.event.*; 5import javax.imageio.*; 6 7//============================================================================== 8//メイン・クラス 9//============================================================================== 10public class Key_test2 11{ 12 //メイン・メソッド 13 public static void main(String[] args) 14 { 15 Key_test2 test = new Key_test2(); 16 } 17 public Key_test2() 18 { 19 //基礎フレームの設定。 20 JFrame frame = new JFrame(); 21 frame.setSize(500,500); 22 frame.setTitle("Key_test2"); 23 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 24 frame.add(new MainPanel()); 25 frame.setVisible(true); 26 27 //キーボード・リスナーの設定 28 //フレームにキーボード入力の受信を登録 29 frame.addKeyListener(new key()); 30 } 31} 32class MainPanel extends JPanel { 33 public MainPanel(){ 34 } 35 public void paintComponent(Graphics g) { 36 //画像を引数に入れる 37 Image A = getToolkit().getImage("A.png"); 38 Image B = getToolkit().getImage("B.png"); 39 switch(key.img){ 40 case 0: g.drawImage(A ,0,0, this); break; 41 case 1: g.drawImage(B ,0,0, this); break; 42 } 43 } 44} 45 46class key implements KeyListener 47{ 48 //画像番号(img0=A,img1=B) 49 public static int img; 50 51 //キーが押されたときに呼ばれるメソッド 52 public void keyPressed(KeyEvent event) 53 { 54 img = 1; 55 //System.out.println(img); 56 } 57 58 //キーが離されたときに呼ばれるメソッド 59 public void keyReleased(KeyEvent event) 60 { 61 //何もしない 62 } 63 //キーがタイプされたときに呼ばれるメソッド 64 public void keyTyped(KeyEvent event) 65 { 66 //何もしない 67 } 68}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/06 16:16