在不创建变量的情况下使用 JavaFX FXML 在 CSS 中设置布局窗格样式?
Style Layout Panes in CSS with JavaFX FXML without creating a variable?
我正在使用 JavaFX FXML,但在使用 CSS.
设计我的应用程序时遇到了一些问题
我的根节点上有一个 GridPane
,我想为其背景设置样式。 GridPane
本身从未在 Java 代码 (@FXML
) 中提及,因为它没有必要 - 它根本没有在代码中使用过。
但是,我现在正在设计应用程序的样式,我可以从 Oracle's Official Guide of Styling Layout Panes with CSS 得到的是我必须创建一个像这样的变量:GridPane grid = new GridPane();
然后继续分配变量一种风格,像这样:
.grid {
-fx-background-color: white;
-fx-background-radius: 5.0;
-fx-background-insets: 0.0 5.0 0.0 5.0;
-fx-padding: 10;
-fx-hgap: 10;
-fx-vgap: 10;
}
然后继续为其添加样式,如下所示:grid.getStyleClass().add("grid");
.
这对我来说是一个不可行的解决方案,因为我在整个项目的多个场景中有多个 GridPane
,而且我不必为所有这些都手动创建一个变量。
是否有类似于按钮样式的解决方案?
无需为按钮创建变量即可设置按钮样式,它会自动设置场景中所有按钮的样式,如下所示:
.button{
-fx-text-fill: rgb(49, 89, 23);
-fx-border-color: rgb(49, 89, 23);
-fx-border-radius: 5;
-fx-padding: 3 6 6 6;
}
GridPane
没有自己的样式 class(参见 CSS reference),但类似于 HTML 中的标签选择器,Node
可以被他们 java classes:
选中
GridPane {
-fx-background-color: white;
-fx-background-radius: 5.0;
-fx-background-insets: 0.0 5.0 0.0 5.0;
-fx-padding: 10;
-fx-hgap: 10;
-fx-vgap: 10;
}
此外,还可以从 FXML 添加样式 classes,因为 styleClass
is a Read-Only List Property:
单一样式的缩写形式class:
<GridPane styleClass="grid">
...
多种样式的长格式 classes:
<GridPane>
<styleClass>
<String fx:value="grid"/>
<String fx:value="myclass"/>
</styleClass>
...
也可以从 SceneBuilder 的属性视图中添加样式 classes。
我正在使用 JavaFX FXML,但在使用 CSS.
设计我的应用程序时遇到了一些问题我的根节点上有一个 GridPane
,我想为其背景设置样式。 GridPane
本身从未在 Java 代码 (@FXML
) 中提及,因为它没有必要 - 它根本没有在代码中使用过。
但是,我现在正在设计应用程序的样式,我可以从 Oracle's Official Guide of Styling Layout Panes with CSS 得到的是我必须创建一个像这样的变量:GridPane grid = new GridPane();
然后继续分配变量一种风格,像这样:
.grid {
-fx-background-color: white;
-fx-background-radius: 5.0;
-fx-background-insets: 0.0 5.0 0.0 5.0;
-fx-padding: 10;
-fx-hgap: 10;
-fx-vgap: 10;
}
然后继续为其添加样式,如下所示:grid.getStyleClass().add("grid");
.
这对我来说是一个不可行的解决方案,因为我在整个项目的多个场景中有多个 GridPane
,而且我不必为所有这些都手动创建一个变量。
是否有类似于按钮样式的解决方案?
无需为按钮创建变量即可设置按钮样式,它会自动设置场景中所有按钮的样式,如下所示:
.button{
-fx-text-fill: rgb(49, 89, 23);
-fx-border-color: rgb(49, 89, 23);
-fx-border-radius: 5;
-fx-padding: 3 6 6 6;
}
GridPane
没有自己的样式 class(参见 CSS reference),但类似于 HTML 中的标签选择器,Node
可以被他们 java classes:
GridPane {
-fx-background-color: white;
-fx-background-radius: 5.0;
-fx-background-insets: 0.0 5.0 0.0 5.0;
-fx-padding: 10;
-fx-hgap: 10;
-fx-vgap: 10;
}
此外,还可以从 FXML 添加样式 classes,因为 styleClass
is a Read-Only List Property:
单一样式的缩写形式class:
<GridPane styleClass="grid">
...
多种样式的长格式 classes:
<GridPane>
<styleClass>
<String fx:value="grid"/>
<String fx:value="myclass"/>
</styleClass>
...
也可以从 SceneBuilder 的属性视图中添加样式 classes。