Hi, ich möchte beim Programmstart alle Bilder in einem Ordner laden, um sie später anderen Klassen al öffentliche Konstanten zur Verfügung zu stellen. Allerdings weiss ich nicht wie ich das dynamisch hinkriegen soll, hier mein Versuch:
Das Problem ist, dass die Zuweisung zu "f" nicht funktioniert. Klar irgendwie, ich versuche ein BufferedImage in einem Field zu speichern.
Auf der anderen Seite denke ich mir: Kann man meine Idee vllt doch verwirklichen? Ich kenn mich mit Reflections nicht so aus...
Und wenn es so nicht geht, habt ihr ne andere Idee? Was ich halt vermeiden will, ist dass ich immer viel Code umschreiben muss, nur weil ich neue Bilder hinzufüge oder umbenenne, lösche usw.
Ich möchte halt dass mein Programm alle Bilder in einem Ordner scannt, daraus Images macht, und sie Konstanzen zuweist. Die Namen der Konstanten stehen ja in einer logischen Beziehung zu den Namen der Bild-Dateien.
Danke für Hilfe
Java:
class IconPool {
public static BufferedImage ABOUT;
public static BufferedImage MANUAL;
public static BufferedImage SAVE;
public static BufferedImage LOAD;
// ...
public void init() {
Field[] fields = IconPool.class.getDeclaredFields();
for (Field f : fields) {
String fileName = f.getName().toLowerCase() + ".png";
String filePath = "assets/img/" + fileName;
f = ImageIO.read(ImagePool.class.getResourceAsStream(filePath));
}
}
}
Das Problem ist, dass die Zuweisung zu "f" nicht funktioniert. Klar irgendwie, ich versuche ein BufferedImage in einem Field zu speichern.
Auf der anderen Seite denke ich mir: Kann man meine Idee vllt doch verwirklichen? Ich kenn mich mit Reflections nicht so aus...
Und wenn es so nicht geht, habt ihr ne andere Idee? Was ich halt vermeiden will, ist dass ich immer viel Code umschreiben muss, nur weil ich neue Bilder hinzufüge oder umbenenne, lösche usw.
Ich möchte halt dass mein Programm alle Bilder in einem Ordner scannt, daraus Images macht, und sie Konstanzen zuweist. Die Namen der Konstanten stehen ja in einer logischen Beziehung zu den Namen der Bild-Dateien.
Danke für Hilfe