【问题标题】:How To Use CSS For JavaFX Projects如何在 JavaFX 项目中使用 CSS
【发布时间】:2017-05-30 06:05:59
【问题描述】:

我对 JavaFX 很陌生,想知道是否有办法将 css 文件分配给整个 JavaFX 项目/场景。目前,我必须将样式表应用于我想用 css 设置样式的每个元素。我正在使用 IntelliJ 和 Scene Builder 2.0。我已经尝试在我的 Main 类中添加样式表,如下所示的 start 方法,但它似乎没有达到预期的效果。

public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("JavaFXTest.fxml"));
    primaryStage.setTitle("JavaFX Test");
    primaryStage.setScene(new Scene(root, 300, 275));
    root.getStylesheets().add("@../styling/styles.css");
    primaryStage.show();
}

public static void main(String[] args) {
    launch(args);
}

【问题讨论】:

    标签: java css intellij-idea javafx scenebuilder


    【解决方案1】:

    您可以在场景中添加样式表:

    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(event -> System.out.println("Hello World!"));
    
        StackPane root = new StackPane();
        root.getChildren().add(btn);
    
        Scene scene = new Scene(root, 300, 250);
        scene.getStylesheets().add("/styling/styles.css");
    
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    

    在上面的示例中,样式表相对于源根目录位于/styling/styles.css

    【讨论】:

      【解决方案2】:

      我意识到这是 css 文件的路径有问题。我把它改成:

      root.getStylesheets().add("styling/styles.css");
      

      并达到了预期的效果。这样我就不需要手动将样式表添加到 UI 中的每个元素,而是现在可以在整个场景中使用。只需按照正常的 css 约定声明您的类/id 即可添加样式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-16
        • 2015-03-14
        • 2013-07-08
        • 1970-01-01
        • 1970-01-01
        • 2015-05-10
        • 1970-01-01
        • 2014-08-17
        相关资源
        最近更新 更多