2013-10-12 12 views
8

Istnieje wiele samouczków, i wiele sugestii, aby osiągnąć ten cel poprzez rozszerzenie komórek JavaFX, aby mogły być edytowalne. Dobry jest this stackoverflow question.
Ale official tutorials używa wywołanie metody do tworzenia zwrotnego bez pisania cały ten kod, nazywającJak można edytować komórki JavaFX TableView?

lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn()); 

Jednakże gdy zrobić to w moim kodu (FormTokens jest mój „model”):

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

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

Compiler mówi:

Sposób setCellFactory ( Callback<TableColumn<FormTokens,String>,TableCell<FormTokens,String>>)
w rodzaju TableColumn<FormTokens,String>
nie dotyczy argumentów
(Callback<TableColumn<Object,String>,TableCell<Object,String>>)

Jeśli usunąć wywołanie metody wymienione powyżej wszystko działa dobrze, z wyjątkiem, że komórki tableview nie są edytowalne. Co ja robię źle?

edytuj: Właśnie znalazłem: Javafx TableView can not be edited Ale nie ma rozwiązań. Jak obsłużyć Callback<TableColumn<Object,... do Callback<TableColumn<FormTokens,...?

Odpowiedz

13

określić dokładny typ jawnie dla generycznego parametru jako

valuColumn.setCellFactory(TextFieldTableCell.<FormTokens>forTableColumn()); 
Powiązane problemy