Laggy JavaFX-GUI на Raspberry Pi - PullRequest
       16

Laggy JavaFX-GUI на Raspberry Pi

0 голосов
/ 07 апреля 2019

Я кодировал приложение, используя IDE Netbeans с JavaFX на моем ПК с Windows и библиотеку дизайна материалов JFoenix для элементов пользовательского интерфейса.Узнав, что JavaFX больше не поддерживается Oracle во встроенных JDK по умолчанию, я установил OpenJFX с менеджером пакетов по умолчанию (apt-get install openjfx).Приложение запускается как положено, но элементы пользовательского интерфейса ведут себя очень медленно.При нажатии на кнопку анимация отображается только частично, а затем застревает перед сменой сцены.Эти проблемы появляются только при работе на Pi.

Взаимодействие пользовательского интерфейса выполняется в контроллере, который затем отправляет обратно в основной поток пользовательского интерфейса.

Код в контроллере выглядит следующим образом:

@FXML
public void btnStart(ActionEvent e) {
    main.goToEntry();                         
} 

Код в основном потоке:

public void goToEntry() {
        try {
            PPentryController entry = (PPentryController) replaceSceneContent("views/PPentry.fxml");
            entry.setMain(this);
        } catch (Exception ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    } 
private Initializable replaceSceneContent(String fxml) throws Exception {
        FXMLLoader loader = new FXMLLoader();
        InputStream in = Main.class.getResourceAsStream(fxml);
        loader.setBuilderFactory(new JavaFXBuilderFactory());
        loader.setLocation(Main.class.getResource(fxml));
        Parent page;
        try {
            page = loader.load(in);
        } finally {
            in.close();
        } 

        Scene scene = new Scene(page);
        stage.setScene(scene);        
        stage.setResizable(false);        
        return (Initializable) loader.getController();
    }

Есть ли способ исправить эти проблемы с производительностью?Будет ли выполнение replaceSceneContent () в отдельном потоке идеей прекратить замораживание основного потока пользовательского интерфейса при смене сцен?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...