Die Einstellung der Standard-Anwendung das Symbol Bild in Java swing auf OS X
Ich versuche das icon-Bild für eine Jar-Datei:
setIconImage(new ImageIcon(getClass().getResource("logo.png")).getImage());
Beim laufen in Mac OS X 10.7.4 bekomme ich die folgende Fehlermeldung:
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextGetCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextSetBaseCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextGetCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextSetBaseCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextGetCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextSetBaseCTM: invalid context 0x0
Wo ist das Bild? Verwenden
Die gleiche Fehlermeldung erscheint, wenn ich dies tun.
Stellen Sie sicher, dass die
Sie versuchen, das Dock-icon? oder die Anwendung menubar-Icon?
Bitte Editiere deine Frage, um auch diese Anforderungen.
getResource()
laden Sie das Bild, sprich: getClass().getClassLoader().getResource("logo.png")
Die gleiche Fehlermeldung erscheint, wenn ich dies tun.
Stellen Sie sicher, dass die
URL
zurückgegeben getResource()
ist nicht null.Sie versuchen, das Dock-icon? oder die Anwendung menubar-Icon?
Bitte Editiere deine Frage, um auch diese Anforderungen.
InformationsquelleAutor rhombidodecahedron | 2012-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
setIconImage
nicht das jar-Symbol. Es wird das Symbol für das, was die minimierten Fenster für dasJFrame
Aussehen wird. Das jar-Symbol (die steuert das finder-Symbol und das dock-Symbol der Anwendung) kann nicht gesetzt werden in der jar-Datei selbst. Bekommst du nur das Standard-icon zur Verfügung gestellt von der OS. Müssen Sie wickeln Sie es mit so etwas wie JarBundler für OS X oder Launch4J für Windows.Können Sie die Anwendung dock-Symbol, während Ihre Anwendung ausgeführt wird, sehen
com.apple.eawt.- Anwendung.setDockIconImage
. Es ist nicht perfekt, obwohl, weil, wenn Sie doppelklicken Sie auf Ihr Glas, startet es in das dock mithilfe des generischen java-Symbol und schaltet nur auf Ihre eigenen Symbol nach einem bounce oder zwei, wenn der java-code läuft. Auch denke ich nicht, dass es das dock-Symbol für eine jar-Datei, die nicht läuft (nicht, dass Sie können ziehen Sie eine jar-Datei in das dock sowieso - scheint nicht zu funktionieren für mich).Hier ist etwas code, der veranschaulicht, die verschiedenen Bilder, die Sie festlegen können:
Es kommt auf jedem Mac installiert.
+1 für
com.apple.eawt.Application
, was ich zuvor übersehen.Danke! Das ist mein problem gelöst. P. S. ich brauchte, um zu tun: - Anwendung.getApplication().setDockIconImage(new ImageIcon(getClass().getResource("/logo.png")).Funktion " getImage());
com.apple.eawt.- Anwendung.setDockIconImage ist jetzt ein Toter link.. irgendwelche Ideen auf, wo zu suchen, diese in 2015?
InformationsquelleAutor Keith Randall
Nur, um meine endgültige Lösung für das hinzufügen eines MacOSX-Dock-Symbol in einer pure-java-Applikation:
Dieser automatisch sorgt die Klasse ist vorhanden und führt den
setDockIconImage()
Methode. Funktioniert sehr gut für mich und es stört nicht mit anderen Plattformen.das ist natürlich eine option, allerdings ist diese Prüfung stellt sicher, dass
setDockIconImage()
sicher sein kann, ausgeführt.InformationsquelleAutor
Können Sie Ihre
.icns
- Datei in das Programm-bundle istContents/Resources
Verzeichnis und verweisen Sie imInfo.plist
- Datei. Zum Beispiel, eine Datei namensApplicationName.icns
wäre verweist ein<dict>
Eintrag in dieser form:Einige Einzelheiten in Bezug auf die erwähnten hier.
Verteilen Sie ein JAR mit manifest-oder java-web-start, aber du wirst eine (unterschiedliche) generisches Symbol für jeden.
InformationsquelleAutor trashgod
als ich gegangen durch Ihre Fehler seiner verwandten zu MacOS jdk die begonnen hat, erscheinen nach dem upgrade auf 10.7.4
gehen durch diese falls dir das hilft :
InformationsquelleAutor Harmeet Singh
InformationsquelleAutor Alex Teixeira