JavaFX随FXML更改css文件运行时,带有菜单项

JavaFX随FXML更改css文件运行时,带有菜单项,css,javafx,runtime,menuitem,fxml,Css,Javafx,Runtime,Menuitem,Fxml,我正在学习JavaFx,并试图在运行时更改我的窗口(智囊团游戏)的css样式 目前,它适用于一些对象,如按钮、背景、菜单栏、标签和形状。 但我想更改的另一个对象是菜单项(背景和标签) 我尝试使用下一个css代码来访问它: .context-menu { -fx-background-color: linear-gradient(rgba(200,200,200,1),rgba(50,50,50,1) 80%); } 它在初始化时起作用,但在运行时更改时不起作用。 例如,它可以很好地用于

我正在学习JavaFx,并试图在运行时更改我的窗口(智囊团游戏)的css样式

目前,它适用于一些对象,如按钮、背景、菜单栏、标签和形状。 但我想更改的另一个对象是菜单项(背景和标签)

我尝试使用下一个css代码来访问它:

.context-menu {
    -fx-background-color: linear-gradient(rgba(200,200,200,1),rgba(50,50,50,1) 80%);
}
它在初始化时起作用,但在运行时更改时不起作用。 例如,它可以很好地用于菜单栏本身:

.menu-bar {
    -fx-background-color: black;
    -fx-selection-bar: #505050;
}
.menu-bar .label {
    -fx-font-size: 12pt;
    -fx-font-family: "Segoe UI Light";
    -fx-text-fill: white;
    -fx-opacity: 0.9;
}
在FXMLcontroller中,我调用以下代码来更改蒙皮:

@FXML private AnchorPane generalPane;
private final String themeNormal = getClass().getResource("/mastermindStyles/MasterMind_Normal.css").toExternalForm();

@FXML
void handleSkinNormal(ActionEvent event){
   generalPane.getStylesheets().clear();
   generalPane.getStylesheets().add(themeNormal);
}
我该怎么做呢?

我找到了:

要使用预定义样式(如Modena和Caspian),请执行以下操作:

要使用您自己的css样式表:

Application.setUserAgentStylesheet(null);
StyleManager.getInstance().addUserAgentStylesheet(
  getClass().getResource("NewSkin.css").toExternalForm());
Application.setUserAgentStylesheet(null);
StyleManager.getInstance().addUserAgentStylesheet(
  getClass().getResource("NewSkin.css").toExternalForm());