вам не нужно создавать еще один arrayList для путей, потому что данные пути уже сохранены с изображениями.
если вы хотите получить путь к изображению после его создания, вы можете использовать метод getUrl () в классе Image вызов getUrl () из объекта Image вернет путь, который вы использовали для создания изображения при вызове конструктора, обратите внимание, что он будет работать, только если вы вызвали конструктор Image, используя String в качестве пути дляизображение, оно не будет работать, если вы использовали inputStream для инициализации вашего изображения, а также того, что оно было определено в java 9, после получения пути вы можете разделить его, чтобы получить нужные вам полезные данные, что-то вроде
Image image = new Image("file:/C:/Users/zinou/Desktop/edit.png");
String path = image.getUrl();
String name = path.substring(path.lastIndexOf("/") + 1, path.lastIndexOf("."));
System.out.println(name);
и если бы я связывал каждую карту с ее путем, я бы использовал hashMap, как в
List<Image> mainDeck = new ArrayList<Image>();
//population of the list
HashMap<Image, String> nameData = new HashMap<Image, String>();
for (Image card : mainDeck) {
String path = card.getUrl();
String name = path.substring(path.lastIndexOf("/") + 1, path.lastIndexOf("."));
nameData.put(card, name);
}
Если у вас есть Java 8
, выМожно создать класс, который расширяет класс Image и дает ему дополнительный атрибут (URL), и добавить получатель для URL, чтобы вы могли получить к нему доступ, но затемВаши карты будут экземплярами нового класса, который вы создали, поэтому вы можете получить URL для них, новый класс может выглядеть следующим образом
public class MyImage extends javafx.scene.image.Image{
String url;
public MyImage(String arg0) {
super(arg0);
url = arg0;
}
public String geturl() {
return url;
}
}