Bild in JFrame wird nicht angezeigt

MK234

Aktives Mitglied
Hallo,

in meinem folgenden Programm wird zwar der JFrame, aber nicht das Image angezeigt.
Muß das Bild irgendwie vorgeladen werden?

Java:
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.JFrame;

public class bild extends JFrame {
    public static void main(String[] args) {
        JFrame jp = new JFrame("Image");     
        
        ImageIcon i = new ImageIcon("k10.gif");
        jp.add(new JLabel(i));
        jp.pack();
        jp.setVisible(true);
    }

}
 
Zuletzt bearbeitet von einem Moderator:
müsste funktionieren wenn das Bild da und darstellbar ist,
füge folgende Zeilen zusätzlich ein:

Java:
        File f = new File("k10.gif");
        System.out.println(f.getAbsolutePath());
        System.out.println(f.exists());
du musst übrigens derzeit nicht von JFrame erben
 
wenn ich jetzt schon im Vorgabe-Modus bin, muss ich auch weitermachen,
ansonsten bitte in der Richtung eigenständig weiterdenken 😉 :

Java:
        File parent = new File(".");
        System.out.println(parent.isDirectory());
        File[] files = parent.listFiles();
        for (File f3 : files)
        {
            System.out.println(f3.getAbsolutePath());
        }
auch mit Explorer und Konsole nachschauen was genau da ist, jeder Tippfehler kann Probleme machen,
doppelte Dateiendungen und wer weiß was alles
 
jetzt funktioniert es,

habe das Bild jetzt direkt in src gespeichert unter nicht ins Package.
Warum es jetzt aber funktioniert ist mir im Moment noch nicht so klar???:L

Auf jedenfall Dank.

Ich greife auf dieses Forum immer wieder sehr gerne zurück, weil ich hier bisher immer
sehr hilfreiche Tipps erhalten habe.
 
wenn man einfach so nur einen Dateinamen angibt, dann wird in einem bestimmten Verzeichnis gesucht,
ob das aber c:/, c:/Eigene Dateien, /home/user auf Linux, Projektgrundverzeichnis (Treffer in diesem Fall), src-Grundverzeichnis bzw. bin wenn Klassen woanders langen oder package der Klasse ist (src oder bin) solltest du nicht einfach annehmen sondern entweder irgendwo nachlesen oder zumindest reproduzierbar prüfen

deswegen ja Pfad vergleichen, hast du wohl doch nicht gemacht 😉
 

Zurück
Oben