Ste*_*eve 11 java javafx tableview javafx-2
我在调整包含围绕TableCell项目的文本项的TableView时遇到问题.调整大小时,隐藏的值会调整大小,但可见项不会重新计算文本换行.

红色框中的推文在调整大小期间被隐藏,并按预期调整文本包装.在调整大小阶段期间,框上方的推文可见,并且仍然具有旧的包装.
下面是我调整大小阶段的代码.
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);
}
}
};
}
});
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
Jam*_*s_D 15
这更接近,但不是很好:
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 ;
}
});
Run Code Online (Sandbox Code Playgroud)
在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 ;
});
Run Code Online (Sandbox Code Playgroud)
似乎工作得更好.
| 归档时间: |
|
| 查看次数: |
11931 次 |
| 最近记录: |