在 FXML 中为 TableColumn 设置工具提示

Setting Tooltip for TableColumn in FXML

对于 Button,我可以通过

设置工具提示
<Button>
    <tooltip>
        <Tooltip text="Tooltip text" />
    </tooltip>
</Button>

如何为 TableColumn 执行相同/类似操作?

<TableColumn>
    <cellValueFactory>
        <PropertyValueFactory property="someProperty" />
    </cellValueFactory>
    <tooltip>
        <Tooltip text="Tooltip text" />
    </tooltip>
</TableColumn>

不起作用..

假设您想要在列 header 上设置工具提示,一种方法是在 TableColumn 上设置图形而不是设置文本,然后在图形上设置工具提示。

即而不是:

<TableColumn text="Column 1">
    <cellValueFactory>
        <PropertyValueFactory property="someProperty" />
    </cellValueFactory>
</TableColumn>

你可以做到

<TableColumn>
    <cellValueFactory>
        <PropertyValueFactory property="someProperty" />
    </cellValueFactory>
    <graphic>
        <Label text="Column 1">
            <tooltip>
                <Tooltip text="Tooltip text" />
            </tooltip>
        </Label>
    </graphic>
</TableColumn>

请注意,这有一些 side-effects。例如,table 视图有一个 menu button 控制列的可见性。这是由菜单项填充的,其文本是列的文本:因此使用此技术将使该菜单按钮不可用。在保留 table 列的 text 值的同时创建带有工具提示的 table 列需要一些 CSS 技巧。