2014-02-01 5 views
1

У меня есть приложение, которое использует WebView с его основанием WebEngine, чтобы отобразить простую веб-страницу с некоторыми функциями JavaScript. У меня также есть другой поток, который иногда получает сообщения из Интернета. Я хочу, чтобы они запускали скрипт на веб-странице, используя webengine.executeScript().JavaFX webengine.executeScript() из другого потока.

Моя проблема заключается в том, что модель потоковой передачи JavaFX не позволяет запускать ее на любом другом потоке, кроме основного потока пользовательского интерфейса, и генерирует исключение. Я просмотрел свойства, задачи, службы, но никто, кажется, не делает то, что мне нужно. Скрипт выполняется быстро - не проблема, чтобы он запускался в потоке пользовательского интерфейса, но я не уверен, как получить сообщения в поток пользовательского интерфейса.

ответ

1

Вы можете использовать Platform.runLater():

Platform.runLater(new Runnable() { 
    @Override 
    public void run() { 
     webEngine.executeScript("foo()") 
    } 
}); 
Смежные вопросы