Что такое «грязные узлы» в JavaFX? - PullRequest
0 голосов
/ 06 мая 2018

В моей программе я использовал класс Imageview , добавил его в список и, наконец, добавил список в панель , из которой список не меняется. Когда программа работает, мне нужно изменить положение загруженного изображения, вызвав setLayoutX () и setLayoutY () , и этот процесс продолжается. В результате у программы есть некоторые проблемы. Первый - генерировать исключения, такие как ArrayIndexOutBoundsException и NullPointerException . Кроме того, некоторые изображения не изменят свою позицию. При проверке исключений я обнаружил, что это должно быть связано с тем, что эти узлы классифицируются как «грязные узлы». Поэтому я хочу знать, почему они классифицируются так.

1 Ответ

0 голосов
/ 17 декабря 2018

Я считаю, что вы забыли поместить свой код пользовательского интерфейса в поток приложений JavaFX. Я рекомендую вам поместить свой код пользовательского интерфейса в Platform.runLater(() -> { /* your JavaFX code. */ } или использовать Task , чтобы отделить то, что должно или не должно быть в потоке приложений JavaFX.

Если это не сработало для вас, проблема может заключаться в возможной ошибке JavaFX, о которой сообщил один из разработчиков в комментарии к методу impl_updatePeer и классу Region:

// TODO I think we have a bug, where if you create a Region with an Image that hasn't
// been loaded, we have no listeners on that image so as to cause a pulse & repaint
// to happen once the image is loaded. We just assume the image has been loaded
// (since when the image is created using new Image(url) or CSS it happens eagerly).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...