Exportierte JAR öffnet zweiten Frame nicht mehr

Creepaz

Bekanntes Mitglied
Servus,

in Eclipse kann ich mein Projekt ohne Probleme öffnen, allerdings sobald ich es exportiere kommt nur der Frame zum einloggen und sobald ich einloggen gedrückt habe, wird der zweite Frame nicht mehr geöffnet. Woran könnte sowas liegen? Wie gesagt, im Projekt funktioniert es ohne jegliche Fehlermeldungen.
 
Aufgrund deiner Informationen vermute ich, du hast einen Fehler gemacht.

Ohne Code und Ordnerstrukturen etc. ist es sehr schwer da was zu sagen.
 
Ja, nur war ich mir gerade etwas unsicher welchen Teil des Codes ich posten sollte, da ich ziemlich viel in letzter Zeit verändert habe. Bin nun so halbwegs dahinter gekommen, es war zwecks dem Hintergrundbild das erst geladen wurde wenn der Frame geöffnet wurde, habe es nun in die Main-Klasse und nun funktioniert es schonmal wieder bisschen besser. Nur noch die Bilder anpassen, trotzdem vielen Dank.
 
Was mir noch einfällt als kleiner Tipp. Das exportierte Projekt nicht einfach per Doppelklick starten, sondern in der Konsole mittels java -jar meinJar.jar. Dann siehst du auch Exceptions.
 
So, nochmal zu dem Thema. Nun klappt soweit alles, bis auf das, dass mein Charakter im Spiel angezeigt wird. Das Hintergrundbild wird geladen, aber der Charakter nicht (nur wenn ich direkt aus Eclipse starte, exportiert lädt er nicht). Hier mal mein Code:

Main-Klasse:
Java:
public class Main {
 public static BufferedImage img;
 public static BufferedImage imgCharacter;
 
 public static void main(String[] args) { 
  EventQueue.invokeLater(new Runnable() {
   @Override
   public void run() {
    new LoginPage();
    FrameCreator.frameLogin.setVisible(true);
   }
  });
  
  try {
   img = ImageIO.read((BG_Playground.class.getResourceAsStream("/resources/Spiellandschaft_TAG.png")));
   imgCharacter = ImageIO.read((BG_Playground.class.getResourceAsStream("/resources/char1.png")));
  } catch (IOException e) {
   e.printStackTrace();
  }
  
  new FrameCreator();
  new handlers.MouseHandler();
 }
}

Zum Zeichnen des Charakters:
Java:
public class BG_Playground extends JPanel {
 private static final long serialVersionUID = 2922803220906203092L;
 
 private BufferedImage image;
    private Image scaled;
    public BG_Playground(BufferedImage image) {
        this.image = image;
    }
   
    @Override
    public Dimension getPreferredSize() {
        Insets insets = getInsets();
        int width = insets.left + insets.right + image.getWidth();
        int height = insets.top + insets.bottom + image.getHeight();
        return new Dimension(width, height);
    }
    @Override
    protected void paintComponent(Graphics g) {
     int coordsX = LoggedInPage.charX;
     int coordsY = LoggedInPage.charY;
     
        Insets insets = getInsets();
        g.drawImage(getScaled(), insets.left, insets.top, null);
        g.drawImage(Main.imgCharacter, coordsX, coordsY, FrameCreator.loggedIn.getWidth()/50, FrameCreator.loggedIn.getHeight()/25, null);
       
        repaint();
    }
    public Image getScaled() {
        Insets insets = getInsets();                
        int w = getWidth() - insets.left - insets.right;
        int h = getHeight() - insets.top - insets.bottom;
        if (scaled == null || scaled.getWidth(null) != w || scaled.getHeight(null) != h) {
            scaled = image.getScaledInstance(w, h, Image.SCALE_SMOOTH);
        }
        return scaled;
    }
}
 
Ganz blöde Frage: Fehler bei Groß/Kleinschreibung? Die ist vermutlich beim Start aus Eclipse egal, weil es da aus dem Dateisystem geladen wird, beim Start aus dem Jar nicht mehr.

Ansonsten das erzeugte Jar mal in .zip umbennen und schauen ob die Datei da drin landet. Wenn nein, stimmt was in Eclipse mit den Einstellungen zum Buld-Path bzw. Src-Dirs nicht.
 
Groß-/Kleinschreibung passt, und beim direkten Exportieren taucht das PNG-Bild auch im resources-Ordner auf. Habe nun den try-catch Block beim Laden der Bilder als erstes in die Main-Klasse, bevor ich den Frame öffnen lasse. Sobald imgCharacter mit drin ist, startet er nicht mehr, bringt aber auch keinen Fehler. Kommentiere ich das wieder aus, öffnet es wieder ganz normal 😵

EDIT: Nun klappts, hab das Bild nochmal gelöscht und erneut in den resources-Ordner, nun klappt alles... Komisch
 

Zurück
Oben