[Java] JFrame setResizable & setExtendedState

Résolu/Fermé
zzzer Messages postés 907 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 3 décembre 2023 - 7 févr. 2010 à 20:22
zzzer Messages postés 907 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 3 décembre 2023 - 23 févr. 2010 à 23:29
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!

A voir également:

1 réponse

zzzer Messages postés 907 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 3 décembre 2023 181
23 févr. 2010 à 23:29
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.
-1