在JavaFX中打开新场景

在JavaFX中打开新场景,javafx,scenebuilder,Javafx,Scenebuilder,我有两个FXML文件和一个控制器 我已经发布了我试图创建第二个阶段(但失败)的代码 错误消息是: javafx.scene.layout.AnchorPane cannot be cast to javafx.fxml.FXMLLoader 我怎么修理它 @FXML private Scene trial_scene; @FXML public Stage m; @FXML public void click(Stage stage) throws IOException {

我有两个FXML文件和一个控制器

我已经发布了我试图创建第二个阶段(但失败)的代码

错误消息是:

javafx.scene.layout.AnchorPane cannot be cast to javafx.fxml.FXMLLoader 
我怎么修理它

@FXML private Scene trial_scene;
@FXML public  Stage m;     

@FXML public void click(Stage stage) throws IOException {
    m = new Stage();
    openWindow(); 
}

@FXML private void openWindow() throws IOException {
    FXMLLoader root =FXMLLoader.load(
        SampleController.class.getResource(
            "settings.fxml"
        )
    );
    m.initModality(Modality.WINDOW_MODAL);
    m.setTitle("My modal window");
    m.setScene(trial_scene);
    m.show();
}

静态方法FXMLLoader.load返回.fxml文件中定义的根节点(以及objet层次结构)。在你的情况下,它似乎是一种锚烷

你的第一句话应该是

AnchorPane root = FXMLLoader.load(SampleController.class.getResource("settings.fxml"));
例如,使用此对象构建新场景

Scene trial_scene = new Scene(root, 300, 300, Color.BLACK);
然后将此场景传递到您的新舞台

m.setScene(trial_scene); 

@朱厄西:谢谢你的博客。我可以在每个JavaFX页面上看到你的名字。继续摇摆!!