Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

キーボードの受付

JPanelを継承しKeyListenerを実装したクラス
で、コンストラクタに

setFocusable(true);
addKeyListener(this);

の2行を入れているのですが、キーボードが反応しません。この原因として、この他に何が考えられるでしょうか?日本語モードでもローマ字モードでもダメでした。

具体的には、
class test extends JPanel implements KeyListener{
   int x,y;
   test(){
      setFocusable(true);
      addKeyListener(this);
      x = 10;
      y = 10;
   }
   public void paintComponent(Graphics g){
      super.paintComponent(g);
      g.fillRect(x,y,50,50);
   }
   public void keyPressed(KeyEvent e){
      int key = e.getKeyCode();
      if(key == KeyEvent.VK_RIGHT){
    x = x + 5;
      }
      repaint();
   }
   public void keyReleased(KeyEvent e){}
   public void keyTyped(KeyEvent e){}
}

このソースで、右を押した時にfillRectした四角が
動いてくれません。アドバイスよろしくお願いします。

2

回答

79034

閲覧

2件の回答

評価

0

掲示されたコードを動作させましたが、右カーソルキー押下時に、矩形が右に移動します。

このクラスの使用側に問題があるのでは?

評価

0

フォーカスを得られるようにしているだけで、フォーカスを実際に得ていないのでは?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。