I use tableview for my project. As I have long text to put into the cells, I need to wrap it but I also need to edit cells.
So, I have this code.
tcHelp.setCellValueFactory(new PropertyValueFactory<Help, String>("Description"));
tcHelp.setCellFactory(TextFieldTableCell.forTableColumn());
tcHelp.setCellFactory(new Callback<TableColumn<Help, String>, TableCell<Help, String>>() {
@Override
public TableCell<Help, String> call(TableColumn<Help, String> param) {
          final TableCell<Help, String> cell = new TableCell<Help, String>() {
        private Text text;
        @Override
        public void updateItem(String item, boolean empty) {
            super.updateItem(item, empty);
            if (!isEmpty()) {
                Help rowItem = getTableRow().getItem();
                    text = new Text(rowItem.getDescription());
                text.setWrappingWidth(440);
                setGraphic(text);
                    }
            }
        };
                
    //Don't work!!
    cell.setEditable(true);
                
    return cell;
    }
});
I have a problem to edit the cells. What's wrong with cell.setEditable(true) ?
edit : According to trashgod advice, i wrote that but I can't save the value edited. What's wrong with this code ?
    tcHelp.setCellFactory(new Callback<TableColumn<Help, String>, TableCell<Help, String>>() {
        @Override
        public TableCell<Help, String> call(TableColumn<Help, String> param) {
            final TableCell<Help, String> cell = new TableCell<Help, String>() {
                private TextArea textArea;
                @Override
                public void updateItem(String item, boolean empty) {
                    super.updateItem(item, empty);
                    if (!isEmpty()) {
                        Help rowItem = getTableRow().getItem();
                        String text= rowItem.getDescription();
                        Text t = new Text(text);
                        textArea = new TextArea(text);
                        textArea.setWrapText(true);
                        double height = t.getLayoutBounds().getHeight();
                        textArea.setPrefHeight(height+10);
                        setGraphic(textArea);
                    }
                }
            };
            cell.setEditable(true);
            return cell;
        }
    });
setOnEditCommit is never called with textarea in my example !!
    tcHelp.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<Help, String>>() {
        @Override
        public void handle(TableColumn.CellEditEvent<Help, String> t) {
            // TODO Auto-generated method stub
            ((Help) t.getTableView().getItems().get(t.getTablePosition().getRow())).setDescription(t.getNewValue());
            
    });