我需要爲我的某個JavaFX應用程序的「場景」添加CSS效果,而不是場景或舞臺的特定組件。我試圖用:如何將CSS效果添加到JavaFX應用程序的「場景」中?
.main-scene{...}
,並
.main-class{...}
但既不工作。
我需要爲我的某個JavaFX應用程序的「場景」添加CSS效果,而不是場景或舞臺的特定組件。我試圖用:如何將CSS效果添加到JavaFX應用程序的「場景」中?
.main-scene{...}
,並
.main-class{...}
但既不工作。
CSS在不是場景的節點上工作。
有一個css類.root
,它適用於應用程序中所有場景的根節點。爲了獲得最大的靈活性,場景的根目錄應該是Region子類,因爲區域在JavaFX中有更多的樣式選項。
因此,例如,如果你設置你的初級階段是這樣的。
Pane pane = new Pane();
pane.setId("my-pane");
stage.setScene(new Scene(pane, 300, 200));
然後你就可以使用樣式(所有場景的)根窗格:
.root {
-fx-background-color: yellow;
}
或樣品中僅使用特定根窗格:
#my-pane {
-fx-background-color: firebrick;
}
您可以直接添加所需款式.root
款式分類
從docs
.root樣式類應用於場景 實例的根節點。因爲場景圖中的所有節點都是 根節點的後代,所以.root樣式類中的樣式可以應用於任何節點。
這個類內寫入的樣式不需要在外部應用/添加。只需在.root
內添加您的風格,它將自動被javafx拾取。
.root{
//Your styles
}
儘管您需要外部添加css文件!
scene.getStylesheets().add(
getClass().getResource("myCss.css").toExternalForm()
);