Когда я держу и оставляю программу нормально их регистрирует.Тем не менее, он не будет регистрироваться, когда я нажму пробел.Если вы переключите VK_LEFT на VK_RIGHT, затем продолжайте удерживать вправо и вверх, нажимая пробел, все работает нормально.
import javax.swing.JFrame;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
public class Testing implements KeyListener {
public boolean isUp;
public boolean isLeft;
public Testing() {
JFrame application = new JFrame();
application.addKeyListener(this);
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.setSize(500, 500);
application.setVisible(true);
}
public static void main(String[] args) {
Testing test = new Testing();
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_UP)
isUp = true;
else if(e.getKeyCode() == KeyEvent.VK_LEFT)
isLeft = true;
else if(isUp && isLeft && e.getKeyCode() == KeyEvent.VK_SPACE)
System.out.println("pew pew");
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_UP)
isUp = false;
else if(e.getKeyCode() == KeyEvent.VK_LEFT)
isLeft = false;
}
@Override
public void keyTyped(KeyEvent e) {
}
}
Он должен регистрировать пространство, удерживая и оставляя, как это делает вверх и вправо, но это не так.