我是JavaFX和对象编程的新手,所以我需要一些帮助。假设我有一个名为FXML1和FXML2的FXML文件,并且每个都有两个Controller,分别为FXML1_Controller和FXML2_Controller。在FXML1中,我有一些带有整数值和一个按钮的组合框。我想通过这个按钮向FXML2添加一些Imageview,例如如果Combobox1的值为2,所以我想在FXML2视图中添加两个ImageView1,如果Combobox2的值为1,我想向FXML2视图中添加一个ImageView2,等等。然后,我想有机会更改位置(X,Y可以通过鼠标的拖放操作将此ImageView的坐标)设置为X和Y,因为我必须将它们导出到.xml文件。
当我想移动ImageView时卡住了。我从FXML1通过Button将ImageViews添加到FXML2。它可以工作,我可以在FXML2中看到它们,但是现在我不知道如何引用它们。我知道我的想法和代码可能是错误的,但是我正在粘贴它。
我为ImageViews创建了一个新组,我通过循环“ for”循环创建了ImageViews,并将它们添加到了组中。接下来,我使用FXMLLoader加载FXML2.fxml,并将子代添加到FXML2的锚定窗格中。所有这些代码片段都在FXML1中的Button的MouseEvent中。
//Creating group
Group ImageView1_group = new Group();
//Loop
for (int i=0; i<ImageView1_amount;i++){
ImageView ImageView1 = new ImageView("ImageView1.svg");
ImageView1.setId("ImageView1_"+i);
ImageView1.setY(MainPaneHeight/2);
ImageView1.setX(MainPaneWidth/2);
ImageView1_group.getChildren().add(ImageView1);
}
//
FXMLLoader Loader = new FXMLLoader();
Loader.setLocation(getClass().getResource("FXML2"));
try {
anchorpane.getChildren().clear();
Pane newLoadedPane = Loader.load();
anchorpane.getChildren().addAll(ImageView1_group);
} catch (IOException e) {
e.printStackTrace();
}
我添加了一张图片,显示了我想要得到的东西。所有添加的元素必须能够用鼠标移动。感谢您的任何建议。 https://imgur.com/yOaZDHI.jpg