如何在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只能有一个父视图也就不足为奇了。