正如puce所说,你必须使用任务或服务来完成你需要在后台完成的事情.而Platform.runLater则从后台线程中执行JavaFX Application线程中的事情.
您必须同步它们,其中一种方法是使用CountDownLatch类.
这是一个例子:
Service service = new Service() {
@Override
protected Task createTask() {
return new Task() {
@Override
protected Void call() throws Exception {
//Background work
final CountDownLatch latch = new CountDownLatch(1);
Platform.runLater(new Runnable() {
@Override
public void run() {
try{
//FX Stuff done here
}finally{
latch.countDown();
}
}
});
latch.await();
//Keep with the background work
return null;
}
};
}
};
service.start();