[英]ScalaFX/JavaFX Stylesheet is not delegated completely
因此,我正在嘗試向場景中添加樣式表。 一切正常,直到我進入場景的第二層。 我有以下style.css:
.label: {
-fx-font: 16px "Serif";
-fx-padding: 5;
}
.root {
-fx-background: cornflowerblue;
-fx-fill: orchid;
}
我設法通過以下代碼將其附加到場景中:
private val mainLayout = new BorderPane() {...} // stylesheet missing
private val baseLayout = new StackPane() { // root element, has stylesheet
children.add(mainLayout)
...
}
private val scene: Scene = new Scene(baseLayout) {
stylesheets.add("style.css") // stylesheet works, but I can only style root
}
根樣式也可以,但是如果我在調試器中單擊各層,則樣式表在根元素之后消失。 我的根是StackPane
,其中包含BorderPane
。 BorderPane
已經不包含給定的樣式表。
我想念什么? 以后添加元素時,樣式表是否不委托? 我現在不使用場景生成器,因為我在scala中存在一些宏擴展的依賴問題。
提前致謝
解決問題:我的樣式表具有樣式根和標簽。 我創建場景:
var label: Label = new Label()
label.setText("Hello World!")
private val root = new StackPane() {
children.add(label)
}
private val scene: Scene = new Scene(root) {
stylesheets.add("style.css")
}
我正在使用scalafx庫,因此我所有的fx類型都來自該庫( scalafx.scene.layout.Label
, scalafx.scene.Scene
等)
好的。 抱歉。 我發現了錯誤:我在CSS的label標記后添加了一個冒號。 我沒有IDEA終極版,所以沒有CSS支持,這就是為什么我沒有注意到。 現在可以了。 正確的CSS應該看起來像這樣:
.label {
-fx-font: 16px "Serif";
-fx-padding: 5;
}
.root {
-fx-background: cornflowerblue;
-fx-fill: orchid;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.