setIconImage

DoppelFabi

Aktives Mitglied
Ich versuche seit einigen Stunden einfach nur ein Icon zu setzen was trotzdem bleibt, wenn man es als Runnable Jar exportiert.

Die meisten schreiben das man es befolgt machen soll:

Java:
frame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("src/com/hacking/programm/files/Icon.jpg")));

Jedoch bekomme ich in folgenden Zeilen ein Errorcode:

Java:
Manager.frame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("src/com/hacking/programm/files/Icon.jpg")));


    public static void main(String[] args) {
        new Menu();
    }

Welche Möglichkeit gibt es, um Icons oder Label -Bilder trotz Export anzuzeigen?
 

mihe7

Top Contributor
getResource() lädt eine Ressource aus dem Classpath und ich glaube nicht, dass Du ein Paket namens src hast. Nimm mal "/com/hacking/programm/files/Icon.jpg"
 

DoppelFabi

Aktives Mitglied
Jetzt versuche ich das gleiche nur mit JButton's.
Ohne getResource habe ich das ganze so gemacht:

Java:
        ImageIcon icon = new ImageIcon("src/com/hacking/programm/files/Exit.png");
        ((JButton) comp).setIcon(icon);

Jedoch habe ich vieles versucht um mit getResource ein Bild zu laden jedoch möchte das einfach nicht funktionieren.

Hättest du eine Möglichkeit damit das funktioniert?
 

DoppelFabi

Aktives Mitglied
Okay ich habe weiter probiert nun hat es funktioniert. Nun ist mein Problem, wenn ich das Programm starte werden die Images manchmal nicht direkt angezeigt. Um sie angezeigt zu bekommen muss ich das Programm minimieren und wieder öffnen. Gibt es eine Möglichkeit das ganze zu fixen?
 
K

kneitzel

Gast
Also generell könnte man schauen, in welcher Reihenfolge Du alles machst um sicher zu stellen, dass alles soweit fertig ist, wenn das Fenster dargestellt ist.

Als schnellen Fix könnte man ausprobieren:
a) Auf dem JFrame oder Buttons ein invalidate() und/oder repaint(....) aufrufen (Eigentlich müsste seticon auch ein invalidate mitmachen, daher wundert mich das gerade etwas ....)
b) Du kannst auch mit SwingUtilities.updateComponentTreeUI(frame) das erneute malen erzwingen.

Ansonsten zeig einmal Deinen Code wie der genau aussieht. Dann kann man das genauer sagen.
 

Ähnliche Java Themen

Neue Themen


Oben