我有一个任务应该SomeObject
从数据库中返回一个列表:
public final class LoadTask extends Task<List<SomeObject>> {
@Override
protected List<TodoTask> call() throws InterruptedException {
List<SomeObject> list = FXCollections.observableArrayList();
list.addAll(servcie.getAllSomeObjects());
// this task take a lot of time
return list;
}
}
我用这个任务来填写TableView
:
@FXML
private void pullData() throws InterruptedException, ExecutionException {
loadTask1 = new LoadTask();
final Thread t = new Thread(loadTask1);
t.start();
todoList.getItems().addAll(loadTask1.get());
}
当我按下执行pullData()
整个UI
冻结的按钮时,直到我从数据库中获取所有对象。
如何修复设计以获得响应UI
?