Проблема с оплевленным событием в Javafx в Java 8

StackOverflow https://stackoverflow.com//questions/24025995

  •  21-12-2019
  •  | 
  •  

Вопрос

Я недавно обновил мою Java 7 на Java 8. У меня есть приложение, которое принимает в очаровании оплевленного события и проверяет, является ли KEY с ключом навигации и действовать соответственно. Ниже приведен MCVE

Мой код контроллера:

package sample;

import javafx.fxml.FXML;
import javafx.scene.input.KeyEvent;

public class Controller {

    @FXML
    private void keyPressed(KeyEvent evt) {
        System.out.println("Key Pressed");
    }


}
.

мой файл fxml:

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

//I removed all the imports in this post... My original fxml has all the imports...  

<GridPane id="gridPaneId" alignment="CENTER" focusTraversable="true" 
gridLinesVisible="true" hgap="10.0" onKeyPressed="#keyPressed" prefHeight="400.0"
 prefWidth="300.0" vgap="10.0" xmlns:fx="http://javafx.com/fxml/1"  
xmlns="http://javafx.com/javafx/2.2" fx:controller="sample.Controller" />
.

Вопрос в том, что мой код полностью работает нормально, если я запускаю его с помощью Java 7. Когда я пытаюсь запустить его, используя Java 8, мой интерфейс UI отображается без каких-либо проблем, но программа не распознает событие с ключом.Что может быть причиной.

Это было полезно?

Решение

Гридпана не имеет фокуса.Попробуйте вызвать генеракодицетагкод, когда показана этап.

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class SampleApp extends Application {
    public static void main(String[] args) {
        launch(SampleApp.class);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Scene scene = new Scene(FXMLLoader.load(getClass().getResource("/sample/Sample.fxml")));
        primaryStage.setScene(scene );
        primaryStage.show();
        scene.getRoot().requestFocus();
    }
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top