使用 javafx 的不同 fxml 中的 MouseControl 问题

Issues with MouseControl in a different fxml using javafx

很抱歉问这个愚蠢的问题。无法解决,求指导

在我的应用程序中,我使用菜单作为

开始我的主要 java 代码
@Override
public void start(Stage primaryStage) throws Exception {  
    this.primaryStage = primaryStage;
    this.primaryStage.setTitle("MONC GUI :: Abhijit Bhattacharyya");
    FXMLLoader loader = new FXMLLoader(MoncGUI.class.getResource("RootLayout.fxml"));
    rootLayout = (BorderPane) loader.load();        
    //Scene scene = new Scene(rootLayout);
    rootScene = new Scene(rootLayout);
    primaryStage.setScene(rootScene);                
    RootLayoutController controller = loader.getController();
    controller.setMainApp(this);  
    primaryStage.show();
}
    ......

然后我选择通过在主 class 中打开另一个 fxml 来转到特定的菜单页面

public void GeomStart() {
    try {
        FXMLLoader loader = new FXMLLoader(MoncGUI.class.getResource("Geom.fxml"));
        AnchorPane geomPage = (AnchorPane)loader.load();            
        rootLayout.setCenter(geomPage);   
        GeomController controller = loader.getController();
        controller.setMyScene(rootScene);
    } catch (IOException ex) {
        System.out.println(" Problem in loading geometry set");
        Logger.getLogger(MoncGUI.class.getName()).log(Level.SEVERE, null, ex);
    }
}

geom.fxml 与 geomController.java 相关联,它在屏幕上放置了一个原始的几何形状,我希望它旋转。我在互联网上找到了 mouseHandler 代码,当 screen 被传递时应该被激活。

我很困惑我应该通过哪个屏幕。是一开始由主 class 启动的根屏幕,还是我需要在此控制器中本地定义一个新屏幕。我尝试使用此控制器的本地屏幕,但代码句柄未传递给 MouseHandler 代码。

感谢和问候

完全没有必要绕过场景。在您的控制器中,您可以访问您在 FXML 文件中定义的节点。加载此文件并将其根节点附加到场景图后,您可以通过调用任何这些节点的 .getScene() 方法来获取场景。