2013-10-12 13 views
8

Có rất nhiều hướng dẫn, Và rất nhiều đề xuất để đạt được điều này bằng cách mở rộng các ô JavaFX để làm cho chúng có thể chỉnh sửa. Tốt nhất là this stackoverflow question.
Nhưng official tutorials sử dụng một phương pháp gọi để tạo ra các cuộc gọi lại mà không cần viết tất cả những gì mã, Bằng gọiLàm cách nào để tạo các ô JavaView TableView có thể chỉnh sửa?

lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn()); 

Tuy nhiên khi tôi làm điều này trong mã của tôi (FormTokens là "mô hình" của tôi):

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

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

Compiler nói:

phương pháp setCellFactory ( Callback<TableColumn<FormTokens,String>,TableCell<FormTokens,String>>)
trong các loại TableColumn<FormTokens,String>
không áp dụng cho các đối số
(Callback<TableColumn<Object,String>,TableCell<Object,String>>)

Nếu tôi loại bỏ các lời gọi phương thức nêu trên tất cả mọi thứ hoạt động tốt, ngoại trừ tế bào TableView không thể chỉnh sửa. Tôi đang làm gì sai?

chỉnh sửa: Tôi vừa tìm thấy điều này: Javafx TableView can not be edited Nhưng không có giải pháp nào. Làm cách nào để truyền số điện thoại Callback<TableColumn<Object,... tới Callback<TableColumn<FormTokens,...?

Trả lời

13

Chỉ định loại chính xác một cách rõ ràng cho thông số chung là

valuColumn.setCellFactory(TextFieldTableCell.<FormTokens>forTableColumn()); 
Các vấn đề liên quan