JavaFX: Как обернуть текст в tablecell без слушателя? - PullRequest
0 голосов
/ 03 июля 2019

В настоящее время я использую прослушиватель для переноса текста на табличную ячейку, но это вызывает небольшую задержку при загрузке / перезагрузке таблицы данных.Есть ли другой способ сделать это без использования слушателя?

TableColumn<Peticion, Void> colObs = new TableColumn<>("Observaciones");               
        colObs.setPrefWidth(200);
        colObs.getStyleClass().add("columData");
        colObs.setCellFactory(col->{            
            TableCell<Peticion, Void> cell = new TableCell<Peticion, Void>(){
                    public void updateItem(Void item, boolean empty) {
                        super.updateItem(item, empty);
                        if (empty) {
                            setGraphic(null);
                        } else {
                            Peticion p = getTableView().getItems().get(getIndex());  

                            Label l = new Label(p.getObservaciones());
                            l.setWrapText(true);
                            VBox box = new VBox(l);
                            l.heightProperty().addListener((observable,oldValue,newValue)-> {
                                    box.setPrefHeight(newValue.doubleValue()+7);
                                    Platform.runLater(()->this.getTableRow().requestLayout());
                            });
                            super.setGraphic(box);
                            }
                    }       
            };
            return cell;
        });
...