У меня есть несколько вопросов о Platform.runLater
. У меня есть класс приложения JavaFX. В этом классе я запускаю поток (поток читает данные из сетевого сокета).
Теперь, когда я создаю новый Stage
внутри потока, система выдает исключение (поток диспетчера событий JavaFX и мой поток чтения netork не совпадают) - я понимаю это поведение.
Но с другой стороны, я добавляю текст из сетевого ридера в существующий TextArea
или добавляю / удаляю некоторые элементы в ListView<String>
- это не исключение - почему? Я думал, что JavaFX является однопоточным (часть библиотеки пользовательского интерфейса). Это то же самое, что и в Swing: иногда это работает, а иногда у вас просто мусор (потому что EDT)?
Мои вопросы:
Platform.runLater
с помощью метода run()
? В сочетании с try catch (или множественным catch) это выглядит очень странно Я знаю, что использование Platform.runLater
в потоке не так уж хорошо (дизайнерское решение)