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

时间:2014-06-17 16:23:51

标签: css javafx scene

我需要在'场景中添加CSS效果。我的某个JavaFX应用程序,而不是场景或阶段的特定组件。我试着用:

.main-scene{...}

.main-class{...}

但都没有奏效。

2 个答案:

答案 0 :(得分:1)

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;
}

答案 1 :(得分:0)

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

来自docs

  

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

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

.root{
    //Your styles
}

虽然你需要在外部添加css文件!

scene.getStylesheets().add(
  getClass().getResource("myCss.css").toExternalForm()
);