How to programmatically set the color or texture of a tab label in JavaFX?

likejudo picture likejudo · Jan 17, 2013 · Viewed 38k times · Source

I have a TabPane with several Tabs. If the results of an operation in the Tab failed, I want to set the Tab Label to a Fill red or perhaps the texture to hashed (for those with color blindness). I want to reset the Color back to its default, later.

From reading some of the questions here, one can statically set it using a style sheet.

#MyTabPane .tab *.tab-label {
    -fx-text-fill: white;
}

How would one access the Tab label and set it's color/texture dynamically?

tab.setStyle("??");

ADDITIONS BY ELLTZ

How can one use inline Styles stated above to change the Paint of both the Label with style class tab-label and the Button(StackPane) also tab-close-button

code examples needed

Answer

zhujik picture zhujik · Jan 18, 2013

Setting the graphics and styling it did the trick for me:

Tab tabB = new Tab();
tabB.setText("");
tabPane.getTabs().add(tabB);
tabB.setStyle("-fx-border-color:red; -fx-background-color: blue;");
tabB.setGraphic(new Label("Tab B"));
tabB.getGraphic().setStyle("-fx-text-fill: #c4d8de;");