Bonjour,
J'ai une appli qui est une bête JFrame (qui ne contient qu'un label et une progressbar). L'appli est lancée par double clic sur le Jar depuis l'explorateur Windows.
Le client (et moi) avons des dual screen.
Je souhaite que si :
- l'appli est lancée depuis un explorateur Windows depuis l'écran 1, alors l'appli s'affiche et se centre sur l'écran 1
- l'appli est lancée depuis un explorateur Windows depuis l'écran 2, alors l'appli s'affiche et se centre sur l'écran 2
- l'appli est lancée par un "java -jar" l'appli se centre sur n'importe quel écran.
Dans les faits, avec un setLocationRelativeTo(null), l'appli se centre à chaque fois sur l'écran 1 (principal), même si j'ai démarré l'appli depuis un explorateur affiché dans l'écran 2.
Pour reproduire mon problème, j'ai résumé l'appli à ce code :
Si à la place du frame.setLocationRelativeTo(null); je fais un frame.setLocationByPlatform(true); alors, l'appli s'affiche sur le bon écran (mais pas centré; ce dernier point ne me choque pas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 JFrame frame = new JFrame(); frame.setSize(500, 100); frame.setLocationRelativeTo(null); frame.setVisible(true); // sleep pour simuler un traitement dans cette appli minimaliste try { Thread.sleep(10000); } catch (InterruptedException e1) { System.out.println(e1); }
Information complémentaire (à tout hasard) : je suis openJDK 1.8.0_181 ... (et je n'ai pas la possibilité de faire bouger la version de la jre)
Avez-vous une solution pour que mon appli s'affiche sur le bon écran ?
Cordialement,
Partager