Dies ist der beste Weg, um alle Bilder und Symbole in einer JAR-App zu behandeln.
Sobald Sie alle Ihre Bilder und Symbole in eine eigene JAR-Datei gezippt haben - Konfigurieren Sie den Build-Pfad, indem Sie die JAR-Datei für Bilder in Ihre Bibliotheksregisterkarte einfügen, sodass sie jetzt in Ihrem Klassenpfad enthalten ist.
Dann verwenden Sie einfach die folgenden 3x Codezeilen zu Beginn Ihres Konstruktor jedes Bild zugreifen, die Sie für alles, was mit einem SystemTray Bild benötigen, die nicht die einfache ImageIcon der als Hauptsymbol akzeptiert (komisch ich weiß) . Die 3x Linien sind:
URL iconUrl = this.getClass().getResource("/image-iconb.png");
Toolkit tk = this.getToolkit();
imageIcon = tk.getImage(iconUrl);
(ImageIcon ist nur ein Konstruktor deklariert Bildgröße) Jetzt können Sie ein Fenster-Icon-Set so einfach wie:
setIconImage(imageIcon);
und zugleich Verwenden Sie die selbe Variable, wenn Sie das System TrayIcon einstellen, indem Sie Folgendes angeben:
Mit dem oben genannten Verfahren können Sie Bilder oder ImageIcons einfach und zentral deklarieren, ohne das Risiko einzugehen, Bildressourcen nicht an der richtigen Stelle zu halten. Es hält es schön und ordentlich, mit der JAR, die alle Ihre Bilder automatisch zur Laufzeit und Verteilung Ihres Programms enthält.
Als Bonus, sobald die JAR in Ihrem Classpath registriert ist - können Sie ohne viel Aufhebens zu einer anderen Bilder in der gleichen JAR jederzeit halten das Hinzufügen - Alles funktioniert einfach und die hinzugefügten Bilder sofort verfügbar sind Ihre App
Viel besser aus meiner Sicht.
F: Warum setzen Sie eine .png-Ressource in ein Java-Paket ein ??? Selbst wenn Sie Inhalte in eine .jar-Datei einfügen, haben Sie normalerweise ein separates Verzeichnis für Ressourcen ("/ resources" ist ein Pop-Favorit). Zum Beispiel: [Bild zu Glas hinzufügen] (http://stackoverflow.com/questions/1096398/add-image-to-jar-java). PS: Dieser Link beantwortet Ihre spezifische Frage ... aber ich würde davon abraten, wenn möglich. IMHO ... – paulsm4
src/PaketB/PackageBa/PackageBaa/MyImage.png Paket ist Ordner –
Image image = Toolkit.getDefaultToolkit(). GetImage ("Agent.gif"); – TechDog