Java-KeyEvent方法不起作用

时间:2015-08-22 17:05:09

标签: java swing animation graphics

我正在进行一场乒乓球比赛,但我有一个问题。 我的代码中有一个方法,用于检查用户输入是否是按下的键。 但是当我按下(在我的情况下)UP键时它不会执行。

这是代码,抱歉英文不好,请帮帮我:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class GamePanel extends JPanel implements ActionListener,KeyListener{
    Player player = new Player();
    Ball ball = new Ball();

    public GamePanel(){
        Timer time = new Timer(50, this);
        time.start();
    }

    private void update(){
        player.update();
        ball.update();
    }

    public void paintComponent(Graphics g){
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, 800, 600);
        player.paint(g);
        ball.paint(g);
    }
    public void actionPerformed(ActionEvent e){
        update();
        repaint();
    }
    public void keyPressed(KeyEvent e){
        if(e.getKeyCode() == KeyEvent.VK_UP)
        {
            player.setyv(-5);
        }
    }
    public void keyReleased(KeyEvent e){

    }
    public void keyTyped(KeyEvent e){

    }
}

1 个答案:

答案 0 :(得分:1)

再次,

  1. 使用键绑定而不是KeyListener,因为这可以帮助您在不使用kludges的情况下将焦点从图片中移除。
  2. 务必在覆盖中调用super的paintComponent方法。
  3. 例如:

    {{1}}