JavaFX - CSS не работает в моем проекте, но может работать в построителе сцен - PullRequest
0 голосов
/ 02 сентября 2018

Я учусь использовать 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 голосов
/ 05 сентября 2018

Возможно, вы не приложили лист css в файле fxml. Теперь отредактируйте ваш fxml-файл, используя любой текстовый редактор (например, блокнот в Windows).

Напишите этот код непосредственно перед тегом children в вашем файле fxml.

<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>
...