当前,我使用侦听器将文本换行到表单元格上,但这在加载/重新加载数据表时会引起一些延迟。还有其他方法可以不使用侦听器吗?
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;
});