TableView does not really support this methodology.
Here is a somewhat fragile means of doing what you want using reflection. It totally depends on the use of PropertyValueFactory in your factory cell value, so it can look up the name of the property.
class MyItem { SimpleStringProperty nameProperty = new SimpleStringProperty("name"); public MyItem(String name) { nameProperty.set(name); } public String getName() { return nameProperty.get(); } public void setName(String name) { nameProperty.set(name); } public SimpleStringProperty getNameProperty() { return nameProperty; } } ... TableView<MyItem> t = new TableView<MyItem>(); TableColumn col = new TableColumn("Name Header"); col.setCellValueFactory(new PropertyValueFactory<MyItem, String>("name")); t.getColumns().addAll(t); ... public void setValue(int row, int col, Object val) { final MyItem selectedRow = t.getItems().get(row); final TableColumn<MyItem,?> selectedColumn = t.getColumns().get(col);
source share