Java密钥事件无效

时间:2018-01-04 21:08:51

标签: java

您好我正在尝试制作游戏乒乓球。现在我正试图用我的键盘移动桨,但它根本没有响应。谁能告诉我我在这里缺少什么?我无法弄清楚我做错了什么。 当我将支票中的条件设置为假时,拨片移动,因此移动它没有问题。只需让keyEvent工作。

我在keyEvent中缺少什么?

提前致谢!

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.*;

public class Paneel extends JPanel 
{
    private int height, width;
    private boolean moveLeft, moveRight, moveUp, moveDown, playerMoveLeft, 
    playerMoveRight, computerMoveLeft, computerMoveRight = false;
    private Timer timer;
    private Ball ball;
    private Paddle player, computer;

    public Paneel() 
    {
        ball = new Ball(994, 772);
        player = new Paddle(1, 994, 722);
        computer = new Paddle(2, 944, 722);
        TimerHandler timerHandler = new TimerHandler();
        timer = new Timer(20, timerHandler);
        timer.start();
    }

    public void paintComponent(Graphics pen)
    {
        super.paintComponent(pen);
        ball.drawBall(pen);
        player.drawPaddle(pen);
        computer.drawPaddle(pen);
        pen.drawString("" + getHeight() + " " + getWidth(), 50, 50);
    }

    public void keyPressed(KeyEvent e)
    {
        if (e.getKeyCode() == KeyEvent.VK_LEFT) playerMoveLeft = true;
        else if (e.getKeyCode() == KeyEvent.VK_RIGHT) playerMoveRight = 
        true;
    }

    public void keyReleased(KeyEvent e)
    {
        if (e.getKeyCode() == KeyEvent.VK_LEFT) playerMoveLeft = false;
        else if (e.getKeyCode() == KeyEvent.VK_RIGHT) playerMoveRight = 
        false;
    }

    public void movePlayer() 
    {
        if (playerMoveRight == true) player.moveDown();
        else if (playerMoveLeft == true) player.moveUp();
    }

    public void moveComputer() 
    {

    }

    public void resetBall()
    {

    }

    public void resetPlayer()
    {

    }

    public void resetComputer()
    {

    }

    class TimerHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e) {
            movePlayer();
            repaint();
        }
    }
}

0 个答案:

没有答案