KeyEvent нажимает несколько кнопок вместо того, что я думал, я закодировал - PullRequest
0 голосов
/ 09 июня 2019

У меня есть сценарий JavaFx, который будет обрабатывать некоторые ключевые события, но если я нажимаю пробел, то нажимаю кнопку (это не так, как должно работать), и если я нажимаю кнопку после этого, она снова нажимает эту кнопку ,

private void createBoard() {

    HBox buttom = hButtonRow(true);
    VBox left = vButtonRow(true);
    HBox top = hButtonRow();
    VBox right = vButtonRow();

    pane.setTop(top);
    pane.setBottom(buttom);
    pane.setLeft(left);
    pane.setRight(right);
    pane.setCenter(createCardFields());

    BorderPane.setAlignment(left, Pos.CENTER);
    BorderPane.setAlignment(right, Pos.CENTER);

    Scene scene = new Scene(pane);
    scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
        @Override
        public void handle(KeyEvent event) {
            switch (event.getCode()) {
            case F1:
                helpMe();
                break;
            case E:
                try {
                    new EmailStage(me,"").start(prime);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                break;
            case B: 
                new StreetStage(me,"AstaBuero"); 
                break;
            case CONTROL:
                parent.setRotate(parent.getRotate() - 90);
                break;
            case F11:
                mediaPlayer.play();
                break;
            case F12:
                mediaPlayer.stop();
                break;
            case WINDOWS:
                break;
            case SPACE:
                new WuerfelStage(me);
                break;
            case ESCAPE:
                System.exit(0);
                break;
            default:
                System.out.println(event.getCode() + " erkannt!");
                break;
            }
        }
    });
    prime.initStyle(StageStyle.UNDECORATED);
    controlBoard(scene);
    prime.setScene(scene);
    prime.setWidth(max);
    prime.setHeight(max);
    prime.show();
    System.out.println("Max Size: " + max);
}


private HBox hButtonRow() {
           adding some Buttons..
}

private HBox hButtonRow(boolean invers) {
           adding some Buttons..
}

private VBox vButtonRow() {
           adding some Buttons..
}

private VBox vButtonRow(boolean invers) {
           adding some Buttons..
}

Я ожидал «WuerfelStage» (сцена с двумя изображениями [изображения в кости]), но он будет нажимать кнопку, и если я нажимаю кнопку, он снова нажимает эту кнопку. Это только кнопка пробел ..

...