gpt4 book ai didi

JavaFX TableColumn 文本换行

转载 作者:搜寻专家 更新时间:2023-10-30 21:24:51 31 4
gpt4 key购买 nike

我在调整包含环绕 TableCell 项目的文本项目的 TableView 大小时遇到​​问题。调整大小时,隐藏值会调整大小,但可见项不会重新计算文本换行。

The issue.

红色框中的推文在调整大小时被隐藏,并按预期调整了文本换行。框上方的推文在调整大小阶段是可见的,并且仍然有旧的包装。

下面是调整大小阶段的代码。

fxSearchResultsTableTweet.setCellFactory(new Callback<TableColumn<Status, String>, TableCell<Status, String>>() {
@Override
public TableCell<Status, String> call(TableColumn<Status, String> arg0) {
return new TableCell<Status, String>() {
private Text text;

@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (!isEmpty()) {
text = new Text(item.toString());
text.setWrappingWidth(fxSearchResultsTableTweet.getWidth());
this.setWrapText(true);

setGraphic(text);
}
}
};
}
});
}

如有任何帮助,我们将不胜感激。

最佳答案

这更接近,但不是很好:

    textCol.setCellFactory(new Callback<TableColumn<Status, String>, TableCell<String, String>>() {

@Override
public TableCell<Status, String> call(
TableColumn<Status, String> param) {
TableCell<Status, String> cell = new TableCell<>();
Text text = new Text();
cell.setGraphic(text);
cell.setPrefHeight(Control.USE_COMPUTED_SIZE);
text.wrappingWidthProperty().bind(cell.widthProperty());
text.textProperty().bind(cell.itemProperty());
return cell ;
}

});

在 2.2 中,当您将新项目添加到表格时,这会显示错误的高度,然后在调整大小时,单元格的大小会正确。在 8 中它几乎是完美的,只是在添加第一个项目后似乎失败了(至少在我的模型中)。

如评论中所述,

textCol.setCellFactory(tc -> {
TableCell<Status, String> cell = new TableCell<>();
Text text = new Text();
cell.setGraphic(text);
cell.setPrefHeight(Control.USE_COMPUTED_SIZE);
text.wrappingWidthProperty().bind(textCol.widthProperty());
text.textProperty().bind(cell.itemProperty());
return cell ;
});

似乎效果更好。

关于JavaFX TableColumn 文本换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22732013/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com