JavaFX и SceneBuilder KeyEvent не работают - PullRequest
0 голосов
/ 08 декабря 2018

В настоящее время я работаю над программированием своего собственного маленького тетриса, и поэтому мне нужны KeyEvents.Проблема в том, что это не работает.Вот части моего Contoroller:

 public class TetrisFXMLController implements Initializable {
        @FXML
        private AnchorPane anchorPane;
private Board tetrisBoard;
        private BorderPane bpTetris;


    @Override
    public void initialize(URL arg0, ResourceBundle arg1) {
        bpTetris = new BorderPane();
        bpTetris.setLayoutX(BOARD_X);
        bpTetris.setLayoutY(BOARD_Y);
        bpTetris.setPrefWidth(BOARD_WIDTH);
        bpTetris.setPrefHeight(BOARD_HEIGHT);
        anchorPane.getChildren().add(bpTetris);

... some other working init

        System.out.println("Init done");

    }
    // Event Listener on AnchorPane[#anchorPane].onKeyPressed
    @FXML
    public void onKeyPressedAnchorPane(KeyEvent event) {
        System.out.println(event.getCode() + "pressed");
    }
    // Event Listener on AnchorPane[#anchorPane].onKeyReleased
    @FXML
    public void onKeyReleasedAnchorPane(KeyEvent event) {
        System.out.println(event.getCode() + "released");
    }

... some other working Listeners
}

и моего файла FXML:

<?xml version="1.0" encoding="UTF-8"?>

<AnchorPane fx:id="anchorPane" focusTraversable="true" onKeyPressed="#onKeyPressedAnchorPane" onKeyReleased="#onKeyReleasedAnchorPane" prefHeight="538.1" prefWidth="400.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.TetrisFXMLController">
   <children>
 ... some children
   </children>
</AnchorPane>

Большое спасибо, ребята!

...