Salut,
Je pense que tu t'y prend très mal !
Ton calcul pour placer la fenêtre sur un écran spécifique m'a l'air un peu alambiqué !
Déjà si tu veux gérer plusieurs écrans, il faut que tu en récupères la liste :
GraphicsDevice[] devices = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
Ensuite, pour afficher une fenêtre sur un écran spécifique, il faut l'initialiser avec la configuration graphique associé à l'écran, par exemple :
1 2
| GraphicsConfiguration gc = devices[0].getDefaultConfiguration();
JFrame frame = new JFrame(gc); |
Ensuite, il suffit d'utiliser setLocationRelativeTo() pour centrer la fenêtre par rapport à une autre ou par rapport à son écran :
frame.setLocationRelativeTo(null); // centre sur l'écran
Bien sûr la fenêtre doit déjà être construite et dimensionnée...
Enfin, pour revenir au problème de l'exception :
- Soit tu la traites et dans ce cas tu implémentes une solution alternative.
- Soit tu la laisse remonter en faisant planter le programme (en affichant un "joli" message avec un UncaughtExceptionHandler par exemple).
Mais tu ne dois en aucun cas te contenter d'un catch qui se contente d'afficher un message comme celui de ton message. Surtout dans une application graphique !!!
Car le problème passera totalement inaperçu pour l'utilisateur (en général une application graphique est détaché de la console) mais provoquera d'autres résultats incorrects plus ou moins compréhensible... Il vaut mieux s'arrêter au plus tôt !
a++
Partager