Wie setze ich das Symbol einer Anwendung global in Swing?

8

Ich weiß, dass ich für jedes Formular oder für das Stammformular eine angeben kann, und dann wird es auf alle untergeordneten Formulare übertragen, aber ich möchte eine Möglichkeit haben, die Standard-Java-Kaffeetasse für alle zu überschreiben bildet sogar diejenigen, die ich vergessen könnte.

Irgendwelche Vorschläge?

    
Allain Lalonde 19.09.2008, 15:54
quelle

4 Antworten

9

Sie können die Stammform (mit der ich meine, dass Sie JFrame meinen) Ihre eigene Unterklasse von JFrame sein und die Standardfunktionalität in ihren Konstruktor einfügen, wie zum Beispiel:

%Vor%

Sie können hier auch andere Standard-Inhalte bündeln, z. B. die Fenstermesswerte des Frames als Benutzereinstellung speichern, Splash-Bereiche verwalten usw.

Alle neuen Bilder, die von diesem erzeugt werden, wären auch Instanzen dieser JFrame Unterklasse. Die einzige Sache, an die Sie sich erinnern müssen, besteht darin, Ihre Unterklasse anstelle von JFrame zu instanziieren. Ich denke nicht, dass es einen Ersatz dafür gibt, sich daran zu erinnern, aber zumindest muss man sich jetzt an eine Unterklasse statt an einen setIconImage -Aufruf erinnern (unter anderen möglichen Merkmalen).

    
Paul Brinkley 19.09.2008, 16:07
quelle
2

Es gibt einen anderen Weg, aber es ist eher ein "Hack" als ein echter Fix ....

Wenn Sie die JRE mit Ihrer Anwendung verteilen, können Sie die Icon-Ressource für die Kaffeetasse in der java exe / dll / rt.jar ersetzen, wo auch immer das mit Ihrem eigenen Icon ist. Es ist vielleicht nicht sehr legitim, aber es ist eine Möglichkeit ...

    
John Gardner 19.09.2008 17:42
quelle
1

Wenn Sie ein "Haupt" -Fenster haben und dessen Icon korrekt einstellen, übernehmen Sie das Icon, solange Sie dieses Hauptfenster als "Eltern" für alle Dialog-Klassen verwenden. Bei allen neuen Frames muss das Symbol jedoch gesetzt sein.

Wie Paul / Andreas gesagt hat, ist die Unterklassenbildung für JFrame die beste Wahl.

    
John Gardner 19.09.2008 17:40
quelle
0

Erweitern Sie die JDialog-Klasse (z. B. nennen Sie sie MyDialog), und legen Sie das Symbol im Konstruktor fest. Dann sollten alle Dialoge Ihre Implementierung (MyDialog) erweitern.

    
Andreas Bakurov 19.09.2008 15:57
quelle

Tags und Links