作为标题,可以对TextFlow组件的所有文本应用默认颜色吗?
TextFlow textFlow = new TextFlow();
textFlow.setId("supertextflow");
// Somewhere else in the code
textFlow.getChildren()
.add(new Text("Dynamic added text! OMG!"));我尝试了不同的解决方案,但没有一种有效。
#supertextflow {
-fx-text-fill: red;
}
#supertextflow * .text{
-fx-fill: red;
}
#supertextflow > * > .text {
-fx-fill: red;
}我知道文本是另一个组件,但是为什么我不能从它的父级来定义它呢?
发布于 2017-11-29 22:00:41
好吧,你不能用Text来做这件事,因为如果你看JavaFX CSS参考指南,它的样式类没有填充css规则。因此,我建议不要使用Text,而是使用Label。如果这样做,那么您可以使用下面的css规则:
#supertextflow > .label {
-fx-text-fill: blue;
-fx-font-size : 20px;
}如果您想继续使用文本,则必须将FlowPane中的每个元素(文本)设置为特定的id (ex )。#customText),然后使用它设置CSS规则,如下所示:
#supertextflow > #customText {
-fx-fill: red;
-fx-font-size : 20px;
}编辑:,正如James_D在下面的推荐中所提到的,您应该在CSS规则上使用类型选择器(我猜这是正确的术语),以便在不需要在它们上设置任何in的情况下为TextFlow中的所有文本节点设置样式:
#supertextflow > Text {
-fx-fill: red;
-fx-font-size : 20px;
}https://stackoverflow.com/questions/47562036
复制相似问题