如何在 JavaFX 8 中向 TableView 标头单元格添加工具提示

2022-09-03 09:50:37

有谁知道如何将工具提示添加到 TableView 中的列标题?

有很多地方解释了如何将工具提示添加到数据单元格,但我没有找到将工具提示添加到标题的方法。

使用工具ScenicView,我可以看到标题是TableColumnHeader对象内的标签,但似乎它不是公共对象。

有什么建议吗?


答案 1
    TableColumn<Person, String> firstNameCol = new TableColumn<>();
    Label firstNameLabel = new Label("First Name");
    firstNameLabel.setTooltip(new Tooltip("This column shows the first name"));
    firstNameCol.setGraphic(firstNameLabel);

答案 2

这是对James_D的扩展答案(我没有评论的声誉):

要使标签与 text 连接列的属性,并且只隐藏原始文本,因此它不会弄乱表格功能的其余部分:

nameLabel.textProperty().bindBidirectional(textProperty());
nameLabel.getStyleClass().add("column-header-label");
nameLabel.setMaxWidth(Double.MAX_VALUE); //Makes it take up the full width of the table column header and tooltip is shown more easily.

css:

.table-view .column-header .label{
    -fx-content-display: graphic-only;
}
.table-view .column-header .label .column-header-label{
    -fx-content-display: text-only;
}

推荐