I saw examples on how to get table header in many places with code
TableHeaderRow header = (TableHeaderRow) tableView.lookup(\"TableHeaderRow\");
lookup("TableHeaderRow"); works, but it needs called after the table is rendered or it will return null
The TableHeaderRow
is created by the Skin
and the default Skin
is not created until css is applied.
You could call applyCss after adding the TableView
to a Scene
and access the TableHeaderRow
after this call.
Alternatively listen for changes in the Skin
and execute that code after the skin has been set.
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();
...
});