如何在JavaFX中以编程方式设置选项卡标签的颜色或纹理?

如何在JavaFX中以编程方式设置选项卡标签的颜色或纹理?,java,tabs,javafx-2,javafx-8,javafx-css,Java,Tabs,Javafx 2,Javafx 8,Javafx Css,我有一个TabPane和几个Tabs。如果选项卡中的操作结果失败,我想将选项卡标签设置为填充红色,或者将纹理设置为散列(对于色盲患者)。我想稍后将颜色重置回默认值 通过阅读这里的一些问题,可以使用样式表静态地设置它 #MyTabPane .tab *.tab-label { -fx-text-fill: white; } 如何访问选项卡标签并动态设置其颜色/纹理 tab.setStyle(“??”) ELLTZ增加的内容 如何使用上面所述的内联样式来更改标签与样式类选项卡标签的绘制,以

我有一个
TabPane
和几个
Tab
s。如果
选项卡
中的操作结果失败,我想将
选项卡
标签
设置为
填充
红色,或者将纹理设置为散列(对于色盲患者)。我想稍后将
颜色
重置回默认值

通过阅读这里的一些问题,可以使用样式表静态地设置它

#MyTabPane .tab *.tab-label {
    -fx-text-fill: white;
}
如何访问
选项卡
标签
并动态设置其颜色/纹理

tab.setStyle(“??”)

ELLTZ增加的内容

如何使用上面所述的内联样式来更改
标签
与样式类
选项卡标签
绘制
,以及
按钮
堆栈窗格
)和
选项卡关闭按钮


需要的代码示例

设置图形和样式它为我提供了窍门:

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;");

谢谢令人惊讶的是,如果先执行tab1.setGraphic(imageView),然后执行tab2.setGraphic(imageView),图形将从tab1切换到tab2。只有一个选项卡有图形。这并不奇怪,因为一个节点在场景图中只能出现一次。“图形”和任何节点一样,是场景图中的通用节点。这让你想知道为什么他们首先称它为“图形”。但是,是的,这是真的,所以ImageView只能有一个父视图也就不足为奇了。