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();
someimgicon = tk.getImage(iconUrl);
(someimgicon ist nur ein Konstruktor deklariert Bildgröße) Jetzt können Sie ein Fenster-Icon-Set so einfach wie:
setIconImage(someimgicon);
und zugleich Verwenden Sie die gleiche Variable, wenn Sie das System TrayIcon einstellen, indem Sie Folgendes angeben:
trayIcon = new TrayIcon(someimgicon, "SystemTray Demo", popupMenu);
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.
Ich habe Bild in den Quellordner eingefügt, wie relativen Pfad festlegen? –