样式表未在JavaFx中应用

时间:2019-12-24 12:22:26

标签: java css javafx stylesheet

我正在使用JavaFX应用程序,但是无法获取要应用的样式表。

我的代码:

public class JavaFX extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        //set up the stage
        primaryStage.initStyle(StageStyle.UNDECORATED);
        primaryStage.setMaximized(true);

        Group root = new Group();
        root.setId("root");
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        scene.getStylesheets().add(JavaFX.class.getResource("styling.css").toExternalForm());

        //Get the screensize
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        double screenX = screenSize.getWidth();
        double screenY = screenSize.getHeight();

        //Text objects
        Text text = new Text();
        text.setId("text");
        text.setText("Test");
        text.setY(50);

        //Add all objects to the root group
        root.getChildren().add(text);

        //Show the stage
        primaryStage.show();

        //Calculate Positions of all objects
        text.setX((screenX /2) - text.getBoundsInParent().getWidth());

我的样式表:

#text {
    -fx-font-size: 50px;
}

CSS文件与java文件位于同一软件包中。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您的代码正确应用了CSS,至少我已经检查了您的字体大小和-fx-font-size:500px;和“文本”按预期更改。请再次检查您的styling.css文件。 (此外,您始终可以检查已编译的内容,并查看jar中的实际内容,以检查实际提取到以后运行的内容中的内容)

但是,最可能的是,也许您有重复的具有相同名称的css文件,一个覆盖另一个。例如。一个位于资源文件夹中,另一个与.java文件位于同一位置