簡體   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