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();
...
});