9

There are a lot of tutorials, And a lot of suggestions to achieve this by extending JavaFX cells to make them editable. A good one is this stackoverflow question.
But the official tutorials uses a method call to create the callback without writing all that code, By calling

lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn());

However when I do this in my code (FormTokens is my "model"):

// At beginning of class declaration
@FXML private TableColumn<FormTokens, String> valuColumn;

// Later at initialization
valuColumn.setCellFactory(TextFieldTableCell.forTableColumn());

Compiler says:

The method setCellFactory( Callback<TableColumn<FormTokens,String>,TableCell<FormTokens,String>>)
in the type TableColumn<FormTokens,String>
is not applicable for the arguments
(Callback<TableColumn<Object,String>,TableCell<Object,String>>)

If I remove the method call mentioned above everything works well except that TableView cells are not editable. What am I doing wrong?

edit: I just found this: Javafx TableView can not be edited But there are no solutions. How do I cast Callback<TableColumn<Object,... to Callback<TableColumn<FormTokens,...?

Community
  • 1
  • 1
hkoosha
  • 1,136
  • 2
  • 15
  • 30

1 Answers1

17

Specify the exact type explicitly for generic parameter as

valuColumn.setCellFactory(TextFieldTableCell.<FormTokens>forTableColumn());
Uluk Biy
  • 48,655
  • 13
  • 146
  • 153