JavaFX-CSS无法在我的项目中使用,但可以在场景生成器中使用

时间:2018-09-02 07:07:13

标签: java css javafx fxml scenebuilder

我正在学习使用Scene Builder。我读过同样的问题,但我仍然很困惑。

我写了一个css来设置背景,这是我的css代码:

 @charset"UTF-8";
.bodybg{
    -fx-background-image: url('../background.jpg');
    -fx-background-size: 100% 100%; 
}

预览界面时,它enter image description here有效

但是当我在代码中使用fxml时,背景分离器就会出现。 enter image description here

这是我的Java代码:

public static void main(String[] args) {

        launch(args);
    }

    @Override
    public void start(Stage primaryStage){
        try {
            // Read file fxml and draw interface.
            Parent root = FXMLLoader.load(getClass().getResource("/demo/StartUI.fxml"));
            Scene scene = new Scene(root);


            primaryStage.setTitle("test");
            primaryStage.setScene(scene);
            primaryStage.setResizable(false);
            primaryStage.show();


        } catch(Exception e) {
            e.printStackTrace();
        }
    }

1 个答案:

答案 0 :(得分:0)

您可能尚未在fxml文件中附加CSS表单。现在,使用任何文本编辑器(例如Windows中的记事本)编辑fxml文件。

在您的fxml文件中的children标记之前编写此代码。

<stylesheets>
    <URL value="@your_css_file.css" />
</stylesheets>

这看起来像:

<AnchorPane id="AnchorPane" prefHeight="233.0" prefWidth="481.0" 
styleClass="mainFxmlClass" xmlns="http://javafx.com/javafx/8.0.102" 
xmlns:fx="http://javafx.com/fxml/1" fx:controller="ate.ChangePasswordController">

<stylesheets>
    <URL value="@your_css_file.css" />
</stylesheets>

   <children>

   </children>
</AnchorPane>