Hey,
ich versuche mein Problem so leicht wie möglich zu beschreiben:
1. In IntellJ kann ich mein Spiel ohne Probleme mit allen Bildern und Funktionen ausführen.
2. Nach dem Kompelieren zu einer Jar findet er meine Bilder aus der Map nicht mehr. (Siehe Bild)
3. Klassen wo ich die Bilder einfach rein geschrieben habe funktionieren einwandfrei nach dem Kompelieren.
Code:
Image background = (new ImageIcon(this.getClass().getResource("/Account.png"))).getImage();
funktioniert ohne Probleme.
----------------------------------
Map:
public class MenuIcons extends IconProvider {
public static final int ITEM_SHOP_BUTTON = 1;
public static final int LEVEL_BUTTON = 2;
public static final int MAIN_MENU = 3;
public static final int BACKGROUND_BUTTON = 4;
public static final int LEVEL_BACKGROUND = 5;
private static final Map<Integer, ImageIcon> ICON_MAP;
static {
Map<Integer, ImageIcon> tempMap = new HashMap<>();
tempMap.put(ITEM_SHOP_BUTTON, getImageFromResources("/ItemshopBtn.png"));
tempMap.put(LEVEL_BUTTON, getImageFromResources("/LevelBtn.png"));
tempMap.put(MAIN_MENU, getImageFromResources("/MainMenu.png"));
tempMap.put(BACKGROUND_BUTTON, getImageFromResources("/NothingField.png"));
tempMap.put(LEVEL_BACKGROUND, getImageFromResources("/LevelLayout.png"));
ICON_MAP = Collections.unmodifiableMap(tempMap);
}
public static ImageIcon getIcon(int iconId) {
return ICON_MAP.get(iconId);
}
}
-------------------------------------------------------------
IconProvider:
public abstract class IconProvider {
protected static ImageIcon getImageFromResources(String path) {
return new ImageIcon(IconProvider.class.getResource(path));
}
}
--------------------------------------------------------------
In der Klasse:
this.getContentPane().add(GuiFactory.createBtn(new Rectangle(80, 135, 300, 50), MenuIcons.getIcon(4), this.ActionListenerPlayer1()));
funktioniert alles in IntellJ perfekt! Wo liegt mein Fehler, dass es in der Jar nicht mehr funktioniert?
ich versuche mein Problem so leicht wie möglich zu beschreiben:
1. In IntellJ kann ich mein Spiel ohne Probleme mit allen Bildern und Funktionen ausführen.
2. Nach dem Kompelieren zu einer Jar findet er meine Bilder aus der Map nicht mehr. (Siehe Bild)
3. Klassen wo ich die Bilder einfach rein geschrieben habe funktionieren einwandfrei nach dem Kompelieren.
Code:
Image background = (new ImageIcon(this.getClass().getResource("/Account.png"))).getImage();
funktioniert ohne Probleme.
----------------------------------
Map:
public class MenuIcons extends IconProvider {
public static final int ITEM_SHOP_BUTTON = 1;
public static final int LEVEL_BUTTON = 2;
public static final int MAIN_MENU = 3;
public static final int BACKGROUND_BUTTON = 4;
public static final int LEVEL_BACKGROUND = 5;
private static final Map<Integer, ImageIcon> ICON_MAP;
static {
Map<Integer, ImageIcon> tempMap = new HashMap<>();
tempMap.put(ITEM_SHOP_BUTTON, getImageFromResources("/ItemshopBtn.png"));
tempMap.put(LEVEL_BUTTON, getImageFromResources("/LevelBtn.png"));
tempMap.put(MAIN_MENU, getImageFromResources("/MainMenu.png"));
tempMap.put(BACKGROUND_BUTTON, getImageFromResources("/NothingField.png"));
tempMap.put(LEVEL_BACKGROUND, getImageFromResources("/LevelLayout.png"));
ICON_MAP = Collections.unmodifiableMap(tempMap);
}
public static ImageIcon getIcon(int iconId) {
return ICON_MAP.get(iconId);
}
}
-------------------------------------------------------------
IconProvider:
public abstract class IconProvider {
protected static ImageIcon getImageFromResources(String path) {
return new ImageIcon(IconProvider.class.getResource(path));
}
}
--------------------------------------------------------------
In der Klasse:
this.getContentPane().add(GuiFactory.createBtn(new Rectangle(80, 135, 300, 50), MenuIcons.getIcon(4), this.ActionListenerPlayer1()));
funktioniert alles in IntellJ perfekt! Wo liegt mein Fehler, dass es in der Jar nicht mehr funktioniert?