Я новичок в JavaFX и объектном программировании, поэтому мне нужна помощь. Давайте предположим, что у меня есть файлы FXML с именами FXML1 и FXML2 и два контроллера для каждого из них, называемые FXML1_Controller и FXML2_Controller. В FXML1 у меня есть несколько Combobox с целочисленными значениями и одна кнопка. Я хотел бы добавить с помощью этой кнопки несколько изображений в FXML2, например если значение Combobox1 равно 2, поэтому я хочу добавить два ImageView1 в представлении FXML2, если значение Combobox2 равно 1, я бы хотел добавить один ImageView2 в представление FXML2 и т. д. Затем я хотел бы иметь возможность изменить положение (X, Y координаты) этого ImageView с помощью перетаскивания мышью и возможность установить эти X и Y в переменные, потому что я должен экспортировать их в XML-файл.
Я застрял, когда хотел переместить ImageView. Я добавил ImageViews в FXML2 с помощью кнопки из FXML1. Это работает, я могу видеть их в FXML2, но я не знаю, как ссылаться на них сейчас. Я знаю, что мое мышление и код могут быть неправильными, но я их вставляю.
Я создал новую группу для ImageViews, я сделал цикл создания ImageViews по циклу 'for' и добавил их в группу. Затем я использовал FXMLLoader для загрузки FXML2.fxml и добавил детей в опорную панель FXML2. Все эти фрагменты кода находятся в MouseEvent кнопки в FXML1.
//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