Я пытаюсь показать пользователю моего приложения, что данные таблицы загружаются, однако мой индикатор прогресса, вращающееся колесо начинает вращаться, а затем останавливается, пока таблица еще не обновлена. Из-за этого создается впечатление, что мое приложение заморожено, что не годится.
public class TracksTable extends TableView<Track> implements InvalidationListener {
private List<Track> data;
private ProgressIndicator progressor;
private BooleanProperty loading = new SimpleBooleanProperty(false);
private TrackModel model;
public TracksTable(){
// initialize columns
}
public void initializeData(ProgressIndicator progressor, TrackModel model){
this.model = model;
this.model.addListener(this);
Platform.runLater(() -> progressor.visibleProperty().bind(loading));
// setting tablecolumn cellvaluefactories and so on...
}
public void fillTable() {
// get data from server and put it in data, takes long time
data = ...
Platform.runLater(this::fillTableView);
}
public void fillTableView(){
this.setItems(data);
this.loading.setValue(false);
}
@Override
public void invalidated(Observable observable) {
this.loading.setValue(true);
new Thread(this::fillTable).start();
}
}
В моем коде используются потоки и потоки JavaFX, ошибки не отображаются, что не так с кодом progressindicator?