#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