Laden von Ressourcen mit getClass().getResource()
Bei Ihrem Versuch, ein Bild für ein Anwendungssymbol zu laden, sind Sie auf Schwierigkeiten gestoßen getClass().getResource(). Diese Methode lädt Ressourcen aus dem Klassenpfad, nicht aus einem Dateisystempfad.
In Ihrem ersten Beispiel haben Sie über eine URL mit getClass().getResource auf das Bild zugegriffen. Diese Methode durchsucht den Klassenpfad nach der angegebenen Ressource. Wenn das Bild am angegebenen Klassenpfad-Speicherort nicht gefunden wurde, gab imgURL null zurück.
Im Gegensatz dazu wurde das Bild erfolgreich geladen, wenn das ImageIcon direkt erstellt wurde, indem der Dateipfad als Zeichenfolge übergeben wurde, da es aus dem Dateisystem liest. In diesem Fall verweist der Pfad direkt auf die Bilddatei.
Um dieses Problem zu beheben, stellen Sie sicher, dass die Bilddatei über den Klassenpfad zugänglich ist. Dies beinhaltet typischerweise das Platzieren des Bildes in einem Unterverzeichnis innerhalb des Projektverzeichnisses. Wenn Sie beispielsweise ein Unterverzeichnis mit dem Namen „images“ erstellen und die Bilddatei darin ablegen, können Sie über den folgenden Ressourcenpfad auf das Bild zugreifen:
java.net.URL imgURL = getClass().getResource("/images/my_image.png");
Bitte beachten Sie, dass der führende Schrägstrich „/“ in Der Ressourcenpfad gibt an, dass sich das Bild im Stammverzeichnis des Klassenpfads befindet, dem Verzeichnis der obersten Ebene des Projekts.
Das obige ist der detaillierte Inhalt vonWarum kann getClass().getResource() mein Bild nicht laden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!