我是JavaFX的新手,对样式感到困惑。我正在使用OpenJFX 13.0.1。我有以下简单的场景:
val oscs = HBox()
val osc1 = VBox()
val title = Text("Osc 1")
title.styleClass.add("text")
osc1.children.add(title)
oscs.children.add(osc1)
val root = BorderPane()
root.children.add(oscs)
val scene = Scene(root, 500.0, 400.0)
我有两个问题:
1)-fx-text-fill无法为文本着色,而-fx-fill是。即
.text {
-fx-fill: #44FFFF;
}
有效,而:
.text {
-fx-text-fill: #44FFFF;
}
没有。根据文档,看来这是错误的。
2)继承无法正常工作。子节点不应该从根继承吗?
无论是-fx-fill
还是-fx-text-fill
,以下内容都不会对标签上色。
.root {
-fx-font-size: 24px;
-fx-font-family: sans-serif;
-fx-fill: #44FFFF;
-fx-background-color: #000000;
-fx-border-color: #44FF00;
-fx-border-width: 2px;
}
我在做什么错?
您可能混淆了Label
和Text
。
Text
是Shape
的子类,不提供-fx-text-fill
属性。此外,不会继承Shape
的-fx-fill
属性。参见CSS Reference Guide。
除了使用Label
以外,您还可以使用后代选择器来分配填充:
.root .text {
-fx-fill: #44FFFF;
}