2015-11-18 5 views
0

Мне нужно передать строки в основной поток (есть GUI), чтобы добавить их в javafx 'TextFlow.Передача строк в основной поток из фоновой темы

В фоновом потоке run() читатель ждет строки из канала JSch. На новые укусы он должен передать их в основной поток. Таким образом, основной поток не может ждать данных из фонового потока (так как это поток GUI), а фоновый поток должен отправить какое-то событие с новыми строками.

Еще одна проблема, что в приложении может быть, например, 4 фоновых потока, которые считывают некоторые данные из канала JSch и отправляют их в одно окно для отображения.

ответ

0

Для передачи данных в GUI поток, использовать Platfotm.runLater() метод

Platform.runLater(() -> { 
     /*send your data from here*/ 
    }); 

Platform.runLater заставляет вас изменить GUI поток из других потоков, имеет откидной эквивалент SwingUtilities.invokeLater

+0

После некоторого чтения, я до сих пор не могу понять, как использовать runLater. Вот пример кода: http://pastebin.com/Ka1S3Zui. В строках 12 и 24 должно быть какое-то действие. – Neka

+0

@Neka Простыми словами, 'Platform.runLater' помогает вам изменить поток GUI из других потоков –