【发布时间】:2014-05-09 01:07:54
【问题描述】:
我在调整包含环绕 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);
}
}
};
}
});
}
任何帮助将不胜感激。
【问题讨论】:
-
试试
text.wrappingWidthProperty().bind(widthProperty());。widthProperty是单元格的宽度。我很快模拟了这个,宽度表现得很好,虽然高度没有。 -
这很有趣,对我来说也一样。您对如何解决高度问题有任何想法吗?
-
没有。它实际上在选择方面表现得非常糟糕。如果您使用默认 TableCell 并将文本绑定到单元格的 item 属性(我将发布代码),它似乎更好,但仍然不完美。
-
请注意,如果您使用
Text而不是像这里的Label,如果您的文本很小,您可以使用-fx-font-smoothing-type: LCD;来避免混叠问题。
标签: java javafx javafx-2 tableview