在SceneBuilder2.0(osx)中向场景添加包含颜色查找的.css文件时,规则不会生效。 .css应该使用颜色查找来更改按钮的背景颜色。 查找失败,按钮背景是透明的。
我将.css添加为场景样式表(预览 - >场景样式表 - >添加样式表),如下所示:
.root {
abc: red;
}
.button {
-fx-background-color: abc;
}
FXML看起来像这样:
<fx:root stylesheets="@supersimple.css" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" type="AnchorPane" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Button layoutX="270.0" layoutY="187.0" mnemonicParsing="false" text="Button" />
</children>
</fx:root>
加载.fxml时会出现此警告:
警告:在解析查找时无法解析'abc' 样式表中规则'* .button'的'-fx-background-color' supersimple.css
我还尝试为rood节点(AnchorPane)应用不同的.css
.pane {
abc: red;
}
.button {
-fx-background-color: abc;
}
行为保持不变:警告和透明按钮背景。
查找“abc”失败了,但为什么呢? 我怎样才能做到这一点?
有必要在SceneBuilder中进行适当的预览。
在应用程序中加载fxml / css会导致按钮具有正确的红色背景。
答案 0 :(得分:1)
oracle-forum上的MoC指出了一种解决方法:
添加styleClass&#34; root&#34;到根窗格确实解决了SceneBuilder中的查找问题。
工作FXML看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<fx:root maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" styleClass="root" type="AnchorPane" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Button layoutX="254.0" layoutY="180.0" mnemonicParsing="false" text="Button" />
</children>
</fx:root>