Как уже упоминалось в комментариях, вызов lookup(".show-hide-columns-button")
возвращает ноль, если Scene
еще не отображается. Простое решение:
tableView.sceneProperty().addListener((observable, oldScene, newScene) -> {
if (newScene != null) {
newScene.windowProperty().addListener((obs, oldWindow, newWindow) -> {
if (newWindow != null) {
newWindow.addEventHandler(WindowEvent.WINDOW_SHOWN, event -> {
final Node showHideColumnsButton = tableView.lookup(".show-hide-columns-button");
// Customize your node here...
showHideColumnsButton.setStyle("-fx-background-color: red;");
event.consume();
});
}
});
}
});