Я новичок в JavaFX и не знаю, как сохранить список элементов, используя их Id, в файл XML.В моем случае это элементы ImageView, количество которых зависит от выбора пользователя (из списка).Все они имеют идентификаторы, такие как imageView1, imageView2 и т. Д., И сгруппированы в imageViewGroup.
for(int i=1; i<=numberOfImageViews;i++){
ImageView imageView = new ImageView("/path_to_image_file);
imageView.setId(imageViewId+i);
imageViewGroup.getChildren().add(imageView);
}
Все эти ImageView загружаются в панель с именем mainPane.
FXMLLoader generateLoader = new FXMLLoader();
generateLoader.setLocation(getClass().getResource("mainPaneAfterGenerate.fxml"));
mainPane.getChildren().clear();
Pane newLoadedPane = generateLoader.load();
mainPane.getChildren().add(newLoadedPane, imageViewGroup);
К этомумомент все работает отлично.У меня есть некоторые функции после загрузки imageView, но я не буду описывать их, потому что они не влияют на операции.Важно то, что пользователь может редактировать идентификатор imageView в это время (например, imageView1 он может изменить на imageView112312), поэтому я просто хочу иметь возможность загрузить идентификатор сейчас и не раньше.Я хотел бы создать файл XML, в котором строки будут выглядеть следующим образом:
<device class="ImageView" displayName="ImageView 1" name="imageView1" />
<device class="ImageView" displayName="ImageView 2" name="imageView2" />
<device class="ImageView" displayName="ImageView 3" name="imageView3" />
etc.
Так что в моем случае «имя» из файла XML - это imageView Id.Я создал этот файл, но у меня нет идеи, как распечатать все изображения, потому что imageView.getId () дает мне идентификатор последнего.
Element device = devicesXmlDocument.createElement("device");
devicesRoot.appendChild(device);
Attr nameDev = devicesXmlDocument.createAttribute("name");
nameDev.setValue(imageView.getId()); // it's last imageView's id
device.setAttributeNode(nameDev);
Attr classDev = devicesXmlDocument.createAttribute("class");
classDev.setValue("ImageView");
device.setAttributeNode(classDev);
Attr displayNameDev = devicesXmlDocument.createAttribute("displayName");
displayNameDev.setValue("ImageView "+ numberofimageview);
device.setAttributeNode(displayNameDev);`