使用 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() 方法来获取场景。
很抱歉问这个愚蠢的问题。无法解决,求指导
在我的应用程序中,我使用菜单作为
开始我的主要 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() 方法来获取场景。