SceneBuilder2.0确实应用了颜色查找规则

时间:2014-06-11 16:24:41

标签: javafx javafx-8 scenebuilder

在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会导致按钮具有正确的红色背景。

1 个答案:

答案 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>  

在这里看原帖: https://community.oracle.com/thread/3573420