У меня есть панель, на которой рисуются графики функций. С помощью этого метода на неё повешен слушатель. Предполагается, что, при нажатии на стрелки клавиатуры, график будет перемещаться, но когда я нажимаю одновременно две кнопки, график перемещается только в одну сторону, более того, когда я отпускаю одну из кнопок, вторая больше не регистрируется.
Я проверил это через System.out.println()
, дело не в коде моего "полотна", а в том, как обрабатываются сразу несколько кнопок клавиатуры.
setOnKeyPressed(keyEvent -> {
switch (keyEvent.getCode()) {
case UP: System.out.println("UP"); break;
case DOWN: System.out.println("DOWN"); break;
case RIGHT: System.out.println("RIGHT"); break;
case LEFT: System.out.println("LEFT"); break;
}
});
Здесь надо использовать AnimationTimer
.
boolean[] keysPressed = new boolean[4];
setOnKeyPressed(keyEvent -> {
switch (keyEvent.getCode()) {
case UP: keysPressed[0] = true; break;
case DOWN: keysPressed[1] = true; break;
case LEFT: keysPressed[2] = true; break;
case RIGHT: keysPressed[3] = true; break;
}
});
setOnKeyReleased(keyEvent -> {
switch (keyEvent.getCode()) {
case UP: keysPressed[0] = false; break;
case DOWN: keysPressed[1] = false; break;
case LEFT: keysPressed[2] = false; break;
case RIGHT: keysPressed[3] = false; break;
}
});
new AnimationTimer() {
@Override
public void handle(long now) {
if (keysPressed[0]) System.out.println("UP");
if (keysPressed[1]) System.out.println("DOWS");
if (keysPressed[2]) System.out.println("LEFT");
if (keysPressed[3]) System.out.println("RIGHT");
}
}.start();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Java Json десериализация только нужных данных Как содержимое которое находится в «Campaigns» положить как объект в массив? Желательно при помощи...
Хочу написать простую программу для вывода погоды и тд, но возникли трудности с выводом времени(а именно с разницей времени в часовых поясах)
Подскажите пожалуйста, ка правильно написать следующий код