package ru.khasang.cachoeira.viewcontroller.mainwindowcontrollers.propertiesmodules.objects; import javafx.geometry.Pos; import javafx.scene.control.CheckBox; import javafx.scene.control.TableCell; public abstract class AbstractCheckBoxCell<S, T> extends TableCell<S, T> { protected S currentRow; @Override protected void updateItem(T item, boolean empty) { super.updateItem(item, empty); this.setAlignment(Pos.CENTER); currentRow = (S) this.getTableRow().getItem(); if (empty) { this.setText(null); this.setGraphic(null); } else { CheckBox checkBox = createCheckBox(); // Расставляем галочки на нужных строках this.setSelectedCheckBox(checkBox); // Заполняем столбец чек-боксами this.setGraphic(checkBox); } } protected abstract CheckBox createCheckBox(); protected abstract void setSelectedCheckBox(CheckBox checkBox); }