Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I set an Application's Icon Globally in Swing?

Tags:

java

swing

I know I can specify one for each form, or for the root form and then it'll cascade through to all of the children forms, but I'd like to have a way of overriding the default Java Coffee Cup for all forms even those I might forget.

Any suggestions?

like image 218
Allain Lalonde Avatar asked Feb 04 '23 13:02

Allain Lalonde


1 Answers

You can make the root form (by which I assume you mean JFrame) be your own subclass of JFrame, and put standard functionality in its constructor, such as:

this.setIconImage(STANDARD_ICON);

You can bundle other standard stuff in here too, such as memorizing the frame's window metrics as a user preference, managing splash panes, etc.

Any new frames spawned by this one would also be instances of this JFrame subclass. The only thing you have to remember is to instantiate your subclass, instead of JFrame. I don't think there's any substitute for remembering to do this, but at least now it's a matter of remembering a subclass instead of a setIconImage call (among possibly other features).

like image 59
Paul Brinkley Avatar answered Feb 06 '23 11:02

Paul Brinkley