Question

Je sais que je peux en spécifier un pour chaque formulaire, ou pour le formulaire racine, puis qu'il se répercute sur tous les formulaires enfants, mais j'aimerais disposer d'un moyen de remplacer la tasse à café Java par défaut pour tous. formes même ceux que je pourrais oublier.

Des suggestions?

Était-ce utile?

La solution

Vous pouvez faire en sorte que le formulaire racine (par lequel je suppose que vous voulez dire JFrame ) soit votre propre sous-classe de JFrame , et insérer des fonctionnalités standard dans son constructeur, telles que:

this.setIconImage(STANDARD_ICON);

Vous pouvez également regrouper ici d'autres éléments standard, tels que la mémorisation des métriques de fenêtre du cadre en tant que préférence de l'utilisateur, la gestion des volets de démarrage, etc.

Toutes les nouvelles images générées par celle-ci seraient également des instances de cette sous-classe JFrame . La seule chose à retenir est d'instancier votre sous-classe, au lieu de JFrame . Je ne pense pas qu’il soit possible de se souvenir de cela, mais au moins, il s’agit maintenant de rappeler une sous-classe au lieu d’un appel setIconImage (parmi peut-être d’autres fonctionnalités).

Autres conseils

Il existe un autre moyen, mais il s’agit plutôt d’un "hack". alors un vrai correctif ....

Si vous distribuez le JRE avec votre application, vous pouvez remplacer la ressource d'icône de tasse à café dans le fichier java exe / dll / rt.jar où qu'elle se trouve avec votre propre icône. Ce n'est peut-être pas très légitime, mais c'est une possibilité ...

De même, si vous avez un "principal" fenêtre et définissez correctement son icône, tant que vous utilisez cette fenêtre principale en tant que "parent". pour toutes les classes de dialogue, ils hériteront de l'icône. Cependant, toute nouvelle image doit avoir l’icône définie.

comme Paul / Andreas l'a dit, sous-classer JFrame sera votre meilleur choix.

Étendez la classe JDialog (par exemple, nommez-la MyDialog) et définissez l'icône dans le constructeur. Tous les dialogues devraient ensuite étendre votre mise en oeuvre (MyDialog).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top