Моя цель
У меня есть редактируемая таблица с логическим столбцом, в котором можно установить или снять флажки, содержащие флажки, и политику выбора нескольких строк. Я хотел бы, чтобы моя таблица автоматически переключала все флажки всех выбранных строк, как только я устанавливаю или снимаю флажок. Не знаю, понимаете ли вы: D Я имею в виду:
- Я выбираю несколько строк
- Я устанавливаю или снимаю флажок одной из этих выбранных строк
- Флажки всех остальных строк автоматически устанавливаются или снимаются.
Теперь должно быть понятно ;)
Мой вопрос
(Я новичок в JavaFX! Я уже сделал то же самое, о чем прошу, с AWT/SWING, но не могу заставить его работать с JavaFX)
Есть ли подобное уже встроенное в JavaFX? Если нет, то как лучше всего добраться до моей цели?
Что я уже сделал
Я узнал, что вы можете прослушивать событие изменения, установив CheckBoxTableCell-Callback для CellFactory желаемого столбца. Я сделал это так:
TableColumn<FileSelection, Boolean> selectedColumn = new TableColumn<>("Sel");
selectedColumn.setCellValueFactory(new PropertyValueFactory<>("selected"));
selectedColumn.setCellFactory(CheckBoxTableCell.forTableColumn(rowidx -> {
if (tblVideoFiles.getSelectionModel().isSelected(rowidx)) {
tblVideoFiles.getSelectionModel().getSelectedItems().forEach(item -> {
if (!item.getFile().equals(tblVideoFiles.getItems().get(rowidx).getFile())) {
item.selectedProperty().set(!item.selectedProperty().get());
}
});
}
return fileList.get(rowidx).selectedProperty();
}));
Проблема здесь: как только флажок изменяется, он переключается сам, что приводит к циклу переключения проверки и снятия отметки: D Как я могу это остановить?