Als ich mit Swing ein GUI-Tool erstellt habe, wurde die Bilddatei bei der Ausführung auf IntelliJ ordnungsgemäß angezeigt. Ich hatte jedoch das Problem, dass die Bilddatei bei der Ausgabe als JAR-Datei nicht ordnungsgemäß angezeigt werden konnte. Als ich googelte, schien es ein bekanntes Phänomen zu sein, und sofort kam eine Lösung heraus. Das Folgende ist eine Zusammenfassung der Lösungen als meine eigenen Notizen.
Um Swing, Javas GUI-Toolkit, zu üben, habe ich ein einfaches Programm erstellt, das nur ein Sanduhrsymbol anzeigt. So was
Das Symbol heißt hourglass.png und wird direkt im Ordner src gespeichert. Darüber hinaus wird das Lesen der Symboldatei wie folgt beschrieben.
ImageIcon myIcon = new ImageIcon("hourglass.png ");
Wenn Sie diesen Code auf IntelliJ ausführen, wird das Programm mit dem ordnungsgemäß angezeigten Sanduhrsymbol ausgeführt. Wenn ich jedoch die JAR-Datei ausgeben und das Programm vom Terminal aus ausführen, kann das Symbol nicht wie unten gezeigt angezeigt werden.
In Java wird ClassLoader.getResource () als Prozess zum Abrufen von Ressourceninformationen wie Dateien vorbereitet.
Im vorherigen Code war die Beschreibung "ImageIcon myIcon = new ImageIcon (" hourglass.png ");"
ClassLoader cl = this.getClass().getClassLoader();
ImageIcon myIcon = new ImageIcon(cl.getResource("hourglass.png "));
Durch Umschreiben als wird die Bildressource auch nach der Ausgabe als JAR-Datei ordnungsgemäß referenziert, sodass das Bild angezeigt wird. Ich habs gemacht
https://virtualwalk.hatenadiary.org/entry/20121013/1350127275 http://hiesuke.hatenablog.com/entry/2016/12/30/101639
Recommended Posts