Файл CSS не применяется к моему коду JavaFX — «Неизвестное свойство»

#java #css #javafx

#java #css #javafx

Вопрос:

Я новичок в JavaFX, и я только начал работать с css. Я написал все, и теперь предупреждения показывают «Неизвестное свойство: «-fx-background-size»» (например). И ничто из файла css не применяется к моему коду javafx.

Я использую jdk-10.0.2 и jre1.8.0_261.

 package application;

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        try {

            // Root Node -Layout der Szene, HBox horizontal
            HBox root = new HBox();
            root.setPrefSize(340.0, 70.0);
            root.setSpacing(10.0);
            root.setAlignment(Pos.CENTER);

            // Elemente erstellen wie Button
            Button button1 = new Button();
            Button button2 = new Button();
            Button button3 = new Button();
            Button button4 = new Button();
            Button button5 = new Button();

            // Button Größe
            button1.setPrefSize(64.0, 64.0);
            button2.setPrefSize(64.0, 64.0);
            button3.setPrefSize(64.0, 64.0);
            button4.setPrefSize(64.0, 64.0);
            button5.setPrefSize(64.0, 64.0);

            

            

            button1.getStyleClass().add("button1");
            button2.getStyleClass().add("button2");
            button3.getStyleClass().add("button3");
            button4.getStyleClass().add("button4");
            button5.getStyleClass().add("button5");

            // Elemente zum root Node hinzufügen
            root.getChildren().add(button1);
            root.getChildren().add(button2);
            root.getChildren().add(button3);
            root.getChildren().add(button4);
            root.getChildren().add(button5);

            // Elemente klickbar machen - Eventhandling

            // Szene erstellen
            Scene scene = new Scene(root, 400, 400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}
  
  /* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */

.button1 {
    -fx-background-color: red;
    -fx-background-size: 64.0 64.0;
    -fx-background-repeat: no-repeat;
    -fx-background-position: center;
}

.button2 {
    -fx-background-image: url(".../images/facebook.png");
    -fx-background-size: 64.0 64.0;
    -fx-background-repeat: no-repeat;
    -fx-background-position: center;
}

.button3 {
    -fx-background-image: url(".../images/twitter.png");
    -fx-background-size: 64.0 64.0;
    -fx-background-repeat: no-repeat;
    -fx-background-position: center;
}

.button4 {
    -fx-background-image: url(".../images/amazon.png");
    -fx-background-size: 64.0 64.0;
    -fx-background-repeat: no-repeat;
    -fx-background-position: center;
}

.button5 {
    -fx-background-image: url(".../images/exit.png");
    -fx-background-size: 64.0 64.0;
    -fx-background-repeat: no-repeat;
    -fx-background-position: center;
}
  

Я написал часть css в другом файле и включил: scene.getStylesheets().add(getClass().getResource(«application.css»).toExternalForm());
Ребята, вы можете мне помочь?
Заранее благодарю вас.

Комментарии:

1. конечно, ничего не произойдет, если файл css ошибочный. Сообщение об ошибке довольно четкое. Удалите строку «-fx-background-size», затем повторите попытку…

2. Вы уверены , что используете JDK 10 и JRE 8? Я ожидал бы, что это закончится UnsupportedClassVersionError . В любом случае ваш синтаксис кажется правильным в соответствии со справочным руководством JavaFX CSS . Обратите внимание, что «px» будет использоваться, если единица измерения не указана, но, возможно, есть ошибка; что происходит, когда вы явно добавляете единицы измерения к своим числам?

3. @Joe Привет, спасибо за ответ. Я попытался удалить строку, но ничего не изменилось

4. @Slaw Я проверил настройки -> java -> установленные JRES, а также переменные среды (idk, если это английское слово для этого), но оба сказали 10.0.2