我看到了如何使用代码
在许多地方获取表头的示例TableHeaderRow header = (TableHeaderRow) tableView.lookup("TableHeaderRow");
就像这里:How to prevent TableView from doing TableColumn re-order in javaFX 8?
但是这段代码会为我返回null
。
如何到达TableHeaderRow
呢?
答案 0 :(得分:5)
TableHeaderRow
由Skin
创建,默认Skin
在创建css之前不会创建。
您可以在将TableView
添加到Scene
后致电applyCss
,并在此次通话后访问TableHeaderRow
。
或者在Skin
中监听更改并在设置外观后执行该代码。
此外,我建议您使用TableViewSkinBase.getTableHeaderRow
来检索标题行,而不是使用lookup
(您仍然使用com.sun
个包)。
tableView.skinProperty().addListener((a, b, newSkin) -> {
TableHeaderRow headerRow = ((TableViewSkinBase) newSkin).getTableHeaderRow();
...
});
答案 1 :(得分:3)
查找( “TableHeaderRow”);工作,但它需要在表格渲染后调用,否则它将返回null