[Java] JFrame setResizable & setExtendedState [Résolu/Fermé]

Signaler
Messages postés
892
Date d'inscription
dimanche 25 mai 2008
Statut
Membre
Dernière intervention
30 juillet 2018
-
Messages postés
892
Date d'inscription
dimanche 25 mai 2008
Statut
Membre
Dernière intervention
30 juillet 2018
-
Bonjour,

Je voudrais créer une fenêtre à la fois non redimensionnable et de taille maximum.
J'ai donc essayé setResizable(false) et setExtendedState(JFrame.MAXIMIZED_BOTH) mais il semblerait que ces deux fonctions soient incompatibles.

Quelqu'un aurait une solution alternative ?
Je cherche notamment une façon d'avoir la taille de l'espace d'écran disponible pour les fenêtres (donc barre des tâches exclue) pour appliquer setSize() en combinaison avec setResizable().

Merci d'avance!

1 réponse

Messages postés
892
Date d'inscription
dimanche 25 mai 2008
Statut
Membre
Dernière intervention
30 juillet 2018
172
Problème résolu grâce à uhrand sur developpez.net :

Il faut s'assurer que setResizable(false) soit exécuté APRES setExtendedState(JFrame.MAXIMIZED_BOTH) et APRES que la fenêtre soit visible.

Pour les affichages Swing en général, il faut savoir également que l'on doit toujours utiliser le thread dédié à l'affichage graphique (EventDispatchThread) de Swing (SwingUtilities.isEventDispatchThread() doit retourner "true"). Le mécanisme qui nous permet la synchronisation se cache derrière l'instruction SwingUtilities.invokeLater(Runnable). Elle nous permet de mettre en file d'attente une action à effectuer dans le thread dédié à l'affichage graphique.