如何将CSS效果添加到';场景';JavaFX应用程序的开发?

如何将CSS效果添加到';场景';JavaFX应用程序的开发?,css,javafx,scene,Css,Javafx,Scene,我需要在我的某个JavaFX应用程序的“场景”中添加CSS效果,而不是场景或舞台的特定组件。我尝试使用: .main-scene{...} 以及 但是两者都不起作用。CSS在节点上起作用,而不是在场景上 有一个css类.root,它适用于应用程序中所有场景的根节点。为了获得最大的灵活性,场景的根应该是一个子类,因为在JavaFX中区域具有更大的样式选项 例如,如果你像这样设置你的初级阶段 Pane pane = new Pane(); pane.setId("my-pane"); stage.

我需要在我的某个JavaFX应用程序的“场景”中添加CSS效果,而不是场景或舞台的特定组件。我尝试使用:

.main-scene{...}
以及


但是两者都不起作用。

CSS在节点上起作用,而不是在场景上

有一个css类
.root
,它适用于应用程序中所有场景的根节点。为了获得最大的灵活性,场景的根应该是一个子类,因为在JavaFX中区域具有更大的样式选项

例如,如果你像这样设置你的初级阶段

Pane pane = new Pane();
pane.setId("my-pane");
stage.setScene(new Scene(pane, 300, 200));
然后,可以使用以下命令设置根窗格(所有场景)的样式:

或者仅使用以下命令在示例中的特定根窗格中执行操作:

#my-pane {
   -fx-background-color: firebrick;
}

您可以直接将所需样式添加到
.root
样式类中

.root样式类应用于场景的根节点 例如。因为场景图中的所有节点都是 根节点,.root样式类中的样式可以应用于任何节点

此类内部编写的样式不需要在外部应用/添加。只需在
.root
中添加您的样式,javafx就会自动获取它

.root{
    //Your styles
}
尽管您需要在外部添加css文件

#my-pane {
   -fx-background-color: firebrick;
}
.root{
    //Your styles
}
scene.getStylesheets().add(
  getClass().getResource("myCss.css").toExternalForm()
);