问题描述
我看到了如何使用代码在许多地方获取表头的示例
I saw examples on how to get table header in many places with code
TableHeaderRow header = (TableHeaderRow) tableView.lookup("TableHeaderRow");
就像这里:
但是这段代码为我返回 null
。
But this code returns null
for me.
如何到达 TableHeaderRow
然后?
推荐答案
TableHeaderRow
由 Skin
创建,默认 Skin
在创建css之前不会创建。
The TableHeaderRow
is created by the Skin
and the default Skin
is not created until css is applied.
你可以打电话给 code>并在此次调用后访问 TableHeaderRow
。
You could call applyCss
after adding the TableView
to a Scene
and access the TableHeaderRow
after this call.
或者监听<$ c中的更改$ c>皮肤并在设置皮肤后执行该代码。
Alternatively listen for changes in the Skin
and execute that code after the skin has been set.
Fu此外,我建议使用 TableViewSkinBase.getTableHeaderRow
来检索标题行,而不是使用 lookup
(您正在使用 com.sun 包。)
Furthermore I'd recommend using TableViewSkinBase.getTableHeaderRow
to retrieve the header row instead of using lookup
(you're using com.sun
packages anyway).
tableView.skinProperty().addListener((a, b, newSkin) -> {
TableHeaderRow headerRow = ((TableViewSkinBase) newSkin).getTableHeaderRow();
...
});
这篇关于如何在JavaFX中从TableView获取TableHeaderRow?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!