Я делаю своего рода игру в понг, но у меня есть проблема. У меня есть метод в моем коде, который проверяет, нажат ли пользовательский ввод. Но он не будет выполняться, когда я нажимаю (в моем случае) клавишу ВВЕРХ.Java-KeyEvent метод не работает
Это код, извините за плохой английский, пожалуйста, помогите мне:
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){
}
}
Check [этот ответ] (http://stackoverflow.com/a/32046652/2775450), Вы имеете такую же проблему в коде, а также. – Codebender
@toskv: не имеет ничего общего с этим, и многое связано с требуемым фокусом KeyListener, а JPanel не является естественно фокусируемым и не сфокусированным. Лучше использовать привязки клавиш. –
Да. :) KeyEvent находится в java.awt.event, поэтому его, конечно, не хватает. – toskv