I use the following code to have an editable table in my javafx code:
@FXML private TableView<Person> personTableGUI;
...
PersonTableGUI.setEditable(true);
ReadOnlyObjectProperty <Person> listener = ResourceTableGUI.getSelectionModel().selectedItemProperty();
tableColumn.setCellFactory(TextFieldTableCell.forTableColumn());
personIdTableGUI.setCellFactory(TextFieldTableCell.forTableColumn());
personIdTableGUI.setOnEditCommit((TableColumn.CellEditEvent<Person, String> t) -> {
((Person) t.getTableView().getItems().get(
t.getTablePosition().getRow())
).setPersonId(t.getNewValue());
personIdTableGUI.setCellValueFactory((cellData) -> cellData.getValue().personIdProperty());
personNameTableGUI.setCellValueFactory(cellData -> cellData.getValue().personNameProperty());
I use the class Person:
public class Person{
private StringProperty personId;
private StringProperty personName;
I try to make the following: when the stringProperty personName is equal to "John" the relevant cell of the editable personIdTableGUI column to not be editable, how can i do that?