Swing Icon in der Titelleiste "festnageln"

kodela

Bekanntes Mitglied
Hallo,

kann mir jemand sagen, wie ich es anstellen muss, dass das Icon der Titelleiste im Programm integriert wird. Bei mir funktioniert die Anzeige des Icons in der Titelleiste nur dann, wenn die Datei für dieses Icon im Arbeitsverzeichnis des Programmes vorhanden ist. Mit allen anderen Grafiken, zum Beispiel die für die Symbolleiste(n) habe ich dieses Problem nicht.

Hier mein Code für die Darstellung der Titelleiste:
Java:
Toolkit tk = Toolkit.getDefaultToolkit();
Image icon = tk.getImage(userDir + File.separator + "sudoku.ico");
setIconImage(icon);
Es wäre schön, wenn mir jemand helfen könnte.

Konrad
 

xehpuk

Top Contributor
Hey,

wenn das Icon direkt im src-Folder liegen soll, dann holst du dir die URL so:
Java:
URL iconURL = getClass().getClassLoader().getResource("sudoku.ico");
Wenn es jedoch bspw. im Package
Code:
de.kodela
liegen soll, dann so:
Java:
URL iconURL = getClass().getClassLoader().getResource("de/kodela/sudoku.ico");
Und im Anschluss dann:
Java:
setIconImage(Toolkit.getDefaultToolkit().getImage(iconURL));
 

kodela

Bekanntes Mitglied
Hallo xehpuk,

danke für den Hinweis. Leider funktioniert das bei mir nicht. Ich bekomme immer folgenden Fehler:

Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:99)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:113)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)

Alle meine anderen Grafiken habe ich im ordner src/img. Damit bekam ich aber für das Icon in der Titelzeile schon Probleme, es wurde in meiner Entwicklungsumgebung angezeigt, aber an anderer Stelle, also zum Beispiel beim Anwender, nicht. Aus diesem Grunde habe ich das Icon in den Projektordner gelegt und wenn es beim Anwender dann im Arbeitsverzeichnis auch vorhanden ist, dann wird es auch angezeigt.

So wie ich es gemacht habe lädt sich das Programm bei jedem Start das Icon. Ich möchte aber, dass das Icon wie alle anderen Grafiken in den Programmcode integriert ist und beim Anwender nicht vorhanden sein muss.

Jetzt habe ich für das Icon alle möglichen Fundorte ausprobiert, also im Projekt-Verzeichnis, im src-Verzeichnes und im Unterordner img von src, aber ich bekomme immer diese Fehlermeldung. Auch die Angabe des absoluten Pfades ändert daran nichts.

MfG. Konrad
 
Zuletzt bearbeitet:

xehpuk

Top Contributor
Hast du auch auf das
Code:
getClassLoader()
geachtet? Dadurch geht er dann vom Root aus. Wenn man nur die Klasse nimmt, geht er wohl von dem Package aus, in dem die Klasse liegt. Damit hatte ich anfangs auch dieselben Probleme (Bild gar nicht gefunden, nur in IDE gefunden).

Im Anhang dann mal ein kleines Beispiel, kompiliert und die Source. :)
 

Anhänge

  • TitleIcon.jar
    5,1 KB · Aufrufe: 7
  • TitleIcon.zip
    10 KB · Aufrufe: 2

Runtime

Top Contributor
Ob jetzt getClassLoader() steht oder nicht macht keinen Unterschied.
Zeig mal den ganzen Code, in dem du das Icon lädst und gib den Pfad an.
 
Zuletzt bearbeitet:

kodela

Bekanntes Mitglied
Hallo,

danke für die Hinweise.

Wie mein Code aussah und auch funktionierte, allerdings nur, wenn die Grafik auch beim Anwender im Arbeitsverzeichnis liegt, habe ich um Zusammenhang mit meiner Anfrage schon gezeigt.

Jetzt habe ich nach xehpuk meinen ursprünglichen Code wie folgt ersetzt:

Java:
private final static Image icon =
       Toolkit.getDefaultToolkit().getImage(
       SudokuApp.class.getClassLoader().getResource("src/sudoku/Img/sudoku.png"));

und im Konstruktor
Java:
setIconImage(icon);

Mit diesem Code bekomme ich die selbe Fehlermeldung wie oben von mir bereits geschildert. Ausgelöst wird dieser Fehler in der Methode setIconImage() der Klasse Window. Dort in der if-Abfrage
Java:
if (peer != null) {
    peer.updateIconImages();
}
nach dem Aufruf von peer.updateIconImages() verabschiedet sich das Programm.

Das Beispiel von xehpuk funktioniert bei mir einwandfrei.

Konrad
 
Zuletzt bearbeitet:

kodela

Bekanntes Mitglied
Hallo,

mit folgendem Code funktioniert es. Ursache war vermutlich eine falsche Pfadangabe.

Java:
URL url = SudokuApp.class.getClass().getResource("/sudoku/Img/sudoku.png");
Image icon = getToolkit().getImage(url);
setIconImage(icon);

Danke noch einmal.

Konrad
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Icon in der Titelleiste und Taskbar AWT, Swing, JavaFX & SWT 2
G Icon in der Titelleiste von JDialog setzen AWT, Swing, JavaFX & SWT 11
G Ikonli in Fat-Jar mit mehreren Icon-Packs einbinden AWT, Swing, JavaFX & SWT 5
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
P Swing Icon einfügen wirft eine Fehlermeldung AWT, Swing, JavaFX & SWT 3
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
U Swing JButton mit Icon AWT, Swing, JavaFX & SWT 7
N Swing Image aus Web laden und in Icon umwandeln AWT, Swing, JavaFX & SWT 4
krgewb Swing Icon von Button AWT, Swing, JavaFX & SWT 12
Shallty JavaFX MenuItem (Info) Icon ändern AWT, Swing, JavaFX & SWT 7
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
U AWT Smoother Icon AWT, Swing, JavaFX & SWT 2
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
S JavaFX TreeItem: Icon am Ende eines Eintrags anhängen AWT, Swing, JavaFX & SWT 2
D Icon in Menuitem einfügen AWT, Swing, JavaFX & SWT 8
C Icon in der Spaltenüberschrift AWT, Swing, JavaFX & SWT 1
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
Tom299 JavaFX TreeView Expanded-Icon ändern AWT, Swing, JavaFX & SWT 0
E Swing Error icon in der TextArea AWT, Swing, JavaFX & SWT 1
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
M label mit icon verschieben. AWT, Swing, JavaFX & SWT 1
M JavaFX wie kann mann sein frame mit einem Icon fersehen? AWT, Swing, JavaFX & SWT 2
C JavaFX Application -Icon wird falsch dargestellt AWT, Swing, JavaFX & SWT 7
J JavaFX TextArea dynamisch Icon im Background anzeigen AWT, Swing, JavaFX & SWT 2
P Image oder Icon auf Tooltip zeichnen AWT, Swing, JavaFX & SWT 4
D JavaFX - MenuItem mit Icon AWT, Swing, JavaFX & SWT 1
T JFrame Icon unter Linux/Ubuntu AWT, Swing, JavaFX & SWT 11
A Swing JColorChooser's Icon will nicht getauscht werden. AWT, Swing, JavaFX & SWT 10
B JAVAFX icon in ComboBox einfügen AWT, Swing, JavaFX & SWT 5
H Javafx - Menuitem - Icon AWT, Swing, JavaFX & SWT 4
J JComboBox Dropdown Icon AWT, Swing, JavaFX & SWT 2
vodkaz JButtonz Icon&Background AWT, Swing, JavaFX & SWT 3
B Windowbuilder - Icon für Button einbinden AWT, Swing, JavaFX & SWT 2
B Icon AWT, Swing, JavaFX & SWT 5
E Swing JFrame Icon AWT, Swing, JavaFX & SWT 3
F icon aus exe auslesen mithilfe des JFilechooser ? AWT, Swing, JavaFX & SWT 4
F DefaultTreeCellEditor - Fragen zur Groesse und zum Icon beim Editieren AWT, Swing, JavaFX & SWT 4
H Label mit Icon positionieren AWT, Swing, JavaFX & SWT 14
H Image Icon ersetzen AWT, Swing, JavaFX & SWT 8
J Icon vor Button AWT, Swing, JavaFX & SWT 7
M Swing JButton-Konstruktor Icon-Parameter (Verständnisfrage) AWT, Swing, JavaFX & SWT 7
TheWhiteShadow Swing Problem mit Icon-Menü-Leiste AWT, Swing, JavaFX & SWT 5
S Würfelanimation icon updaten AWT, Swing, JavaFX & SWT 8
S JButton -> Text über Icon AWT, Swing, JavaFX & SWT 4
M Swing DoubleBuffer mit Icon AWT, Swing, JavaFX & SWT 3
TiME-SPLiNTER JLabel mit Icon & JFrame Resize AWT, Swing, JavaFX & SWT 5
V Panel/Icon aktualisieren AWT, Swing, JavaFX & SWT 10
S 2D-Grafik Icon in Image (System Icons) AWT, Swing, JavaFX & SWT 2
X Icon in JTable abbilden AWT, Swing, JavaFX & SWT 10
M Icon wird bei externen Jar nicht angezeigt AWT, Swing, JavaFX & SWT 2
L toggel icon in jtable AWT, Swing, JavaFX & SWT 3
G JLabel Icon Pfeilform AWT, Swing, JavaFX & SWT 14
S JCheckBoxMenuItem - Haekchen verschwindet bei Icon AWT, Swing, JavaFX & SWT 3
Burny91 Swing Swatches vom JColorChooser als Icon für JButton benutzen AWT, Swing, JavaFX & SWT 4
V Ein Image als Button (nicht mit JButton(Icon)) AWT, Swing, JavaFX & SWT 5
algorismi JInternalframe Icon AWT, Swing, JavaFX & SWT 14
M JCheckBox Icon anpassen AWT, Swing, JavaFX & SWT 2
E Icon für Fenster AWT, Swing, JavaFX & SWT 5
M Prozess-Icon im Prozessmanager AWT, Swing, JavaFX & SWT 8
W Swing Button mit Icon AWT, Swing, JavaFX & SWT 3
S svg Icon für Button (Batik Problem?) AWT, Swing, JavaFX & SWT 3
C Swing JToggleButton und Icon AWT, Swing, JavaFX & SWT 2
S JTree - Knoten mit animiertem GIF/Icon AWT, Swing, JavaFX & SWT 5
S vector Icon AWT, Swing, JavaFX & SWT 3
C LayoutManager Icon Einfügen? AWT, Swing, JavaFX & SWT 6
N Icon für Button wird nicht gefunden AWT, Swing, JavaFX & SWT 11
B SWT Eigenes Icon für CheckboxTreeViewer AWT, Swing, JavaFX & SWT 3
K LookAndFeel JTabbedPane mit Icon und CloseButton AWT, Swing, JavaFX & SWT 2
badfish Swing ImageIcon auf JLabel, Fenster Maximieren verbieten und Icon oben links austauschen? AWT, Swing, JavaFX & SWT 5
F Problem beim Positionieren von Icon und Text in Button AWT, Swing, JavaFX & SWT 2
R JTable mit Column die Icon und Integer enthält? AWT, Swing, JavaFX & SWT 3
T Icon von Frame ändern - Applet AWT, Swing, JavaFX & SWT 2
J Icon einer JCheckBox AWT, Swing, JavaFX & SWT 6
D Swing Anwenungs Icon AWT, Swing, JavaFX & SWT 8
A Swing JTable Icon nur in einer Zelle AWT, Swing, JavaFX & SWT 2
R JTable Header - will links kleines icon hinzufuegen..? AWT, Swing, JavaFX & SWT 6
J Swing JToolBar Button mit Icon AWT, Swing, JavaFX & SWT 4
V [Swing] Overlay Icon AWT, Swing, JavaFX & SWT 5
K Schachbrett / Icon / JButton AWT, Swing, JavaFX & SWT 7
T Abbrechen-Icon entfernen AWT, Swing, JavaFX & SWT 4
S Buttons mit großen Icon AWT, Swing, JavaFX & SWT 7
klattiator Icon und Button zum Schließen in einem Tab AWT, Swing, JavaFX & SWT 3
G Sehr kleine JButtons mit Icon oder Beschriftung AWT, Swing, JavaFX & SWT 2
G Icon ans Ende einer JToolbar AWT, Swing, JavaFX & SWT 7
D Abfrageproblem bei JMenu mit Icon AWT, Swing, JavaFX & SWT 2
K Icon auf JButton mit Wechsel der Farbe AWT, Swing, JavaFX & SWT 2
G Gap zwischen JButton-Rand und JButton-Icon verändern AWT, Swing, JavaFX & SWT 2
G JFrame Icon ändern AWT, Swing, JavaFX & SWT 5
G Icon und Text in JTable darstellen AWT, Swing, JavaFX & SWT 3
S Eclipse Icon Set AWT, Swing, JavaFX & SWT 6
G Icon in JTable AWT, Swing, JavaFX & SWT 9
S Jtree-Icon per Klick auf JBUTTON ändern AWT, Swing, JavaFX & SWT 3
A Icon,zentriert,Farbiger Text alles in einer Tabelle/Spalte ? AWT, Swing, JavaFX & SWT 4
L icon auf Label AWT, Swing, JavaFX & SWT 4
K Icon und Text auf JButton anordnen AWT, Swing, JavaFX & SWT 2
D Icon in MenuItem AWT, Swing, JavaFX & SWT 3
B jtree root icon ändern AWT, Swing, JavaFX & SWT 1
H Java Jar Icon AWT, Swing, JavaFX & SWT 12
K SystemTray-Icon im Prozesslauf ändern AWT, Swing, JavaFX & SWT 2
P [JTree] Icon für Nodes und Leafs ändern bzw. löschen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben