Когда я запускаю отладчик в Eclipse, когда я нажимаю алфавитную клавишу или командную клавишу, вызывается метод handle обработчика событий. Однако, когда я нажимаю любую клавишу со стрелкой, метод handle не вызывается. Что может быть не так?
Вот минимальный воспроизводимый пример.
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Test extends Application {
@Override
public void start(Stage mainStage) throws Exception {
VBox vbox = new VBox();
Label welcome = new Label("Welcome to CST Man Adventures");
Label survive = new Label("See how many rounds you can survive!");
vbox.setAlignment(Pos.BASELINE_CENTER);
vbox.getChildren().add(welcome);
vbox.getChildren().add(survive);
Button start = new Button("Start Round");
HBox hbox = new HBox();
hbox.getChildren().add(start);
hbox.getChildren().add(new Label("Current round: 1"));
vbox.getChildren().add(hbox);
hbox.setTranslateY(100);
Scene scene = new Scene(vbox, 700, 800);
scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.UP) {
System.out.println();
} else if (event.getCode() == KeyCode.LEFT) {
System.out.println();
} else if (event.getCode() == KeyCode.RIGHT) {
System.out.println();
} else if (event.getCode() == KeyCode.DOWN) {
System.out.println();
}
event.consume();
}
});
mainStage.setScene(scene);
mainStage.setTitle("CST Man Adventures");
mainStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}