У меня есть TreeTableView с парой столбцов.Один из столбцов имеет ProgressIndicator, который генерируется с помощью setCellFactory для TreeTableColumn.Эта таблица содержит список файлов.
Пользователь выбирает строку и нажимает кнопку загрузки, затем я получаю выбранную строку, вызывая getSelectionModel (), но проблема в том, что я получаю значение строки (данных), но какЯ могу получить ProgressIndicator, который я вставил в столбец.Поэтому при загрузке файла я могу обновить этот индикатор.
Ниже приведен код:
//Table setup with two columns; file name and progressindicator column, File is my custom class which contains file related info.
@FXML TreeTableView<File> table = new TreeTableView<>();
@FXML TreeTableColumn<File, String> fileCol = new TreeTableColumn<>();
@FXML TreeTableColumn<File, String> progressCol = new TreeTableColumn<>();
//Generating progress indicator with setCellFactory
progressCol.setCellFactory(new Callback<>() {
@Override public TreeTableCell<File, String> call(TreeTableColumn<File, String> p) {
return new TreeTableCell<>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setGraphic(null);
} else {
ProgressIndicator p1 = new ProgressIndicator();
p1.setMaxWidth(20);
p1.setMaxHeight(20);
setGraphic(p1);
}
}
};
}
});
//I have a download button, when it is click below code is executed
download.setOnAction(event -> {
//Here I am getting File object but I also need to get progressindicator which is in progressCol, how I can get it?
File object = table.getSelectionModel().getSelectedItem().getValue();
});