オブジェクトを左または右に移動するプログラムがあります。マウスリスナーとキーリスナーの両方で動作するように活用したいと思います。左矢印キーとマウスの左クリックの両方で同じオプションを実行します。マウスの右キーまたは矢印キーの場合はその逆です。私のコードは現在このようになっています。不要な部分をいくつか切り取っています。
public class TetrisApplet extends JApplet implements MouseListener, KeyListener {
public void init() {
tetris.addMouseListener(this);
tetris.addKeyListener(this);
public void mouseReleased(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
if (x > 0 && a[x - 1][y] == 0) {
shape.move(-20, 0);
x--;
}
}
if (e.getButton() == MouseEvent.BUTTON3) {
if (x < 9 && a[x + 1][y] == 0) {
shape.move(+20, 0);
x++;
}
}
}
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
switch (keyCode) {
case KeyEvent.VK_LEFT:
if (x > 0 && a[x - 1][y] == 0) {
shape.move(-20, 0);
x--;
}
break;
case KeyEvent.VK_RIGHT:
if (x < 9 && a[x + 1][y] == 0) {
shape.move(+20, 0);
x++;
}
break;
}
}
だから私の質問は、なぜそれがキーに対して機能しないのかについて誰かが答えを持っていますか? 私のプログラムでは、マウス クリックを使用してオブジェクトを移動できますが、左矢印キーと右矢印キーを押しても何も起こりません。そして、なぜそれが機能しないのかわかりません。私が見逃しているのはおそらく小さなことだと思いますが、どんな助けでも大歓迎です。