繁体   English   中英

如何对JavaFX项目使用CSS

[英]How To Use CSS For JavaFX Projects

我对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);
}

我意识到这是css文件路径的问题。 我将其更改为:

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

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

您可以向场景添加样式表:

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对于源根目录位于/styling/styles.css

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM