У меня есть программа, которая работает с SQLite и JDBC.Вот как я получаю List <> для TableView policyTable:
class GetAllPoliciesTask extends Task {
@Override
public ObservableList<Policy> call() {
return FXCollections.observableArrayList
(Datasource.getInstance().queryPoliciesForMainTable());
}
Вот как я связываю его с TableView:
@FXML
public void getPolicies(){
Task<ObservableList<Policy>> task = new GetAllPoliciesTask();
policyTable.itemsProperty().bind(task.valueProperty());
Thread thread = new Thread(task);
thread.start();
}
Все работает хорошо, но я хочу добавить некоторые функции -после того, как данные загружены из источника данных и связаны с TableView, я хочу выбрать последнюю выбранную строку в TableView.И вот тут начинаются проблемы.Я не могу получить доступ к TableView.Я пытался использовать join (), но это не помогает:
private int selectedPolicyIndex = -1;
@FXML
public void getPolicies(){
Task<ObservableList<Policy>> task = new GetAllPoliciesTask();
policyTable.itemsProperty().bind(task.valueProperty());
Thread thread = new Thread(task);
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
if(selectedPolicyIndex >= 0){
policyTable.getSelectionModel().select(selectedPolicyIndex);
}
}
Как TableView "заблокирован" или в некотором прогрессе.Можете ли вы помочь мне?