JFrame.setExtentedState(Frame.MAXIMIZED_BOTH) ne fonctionne pas

cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 - 8 mars 2012 à 15:49
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 - 8 mars 2012 à 16:30
Salutation la communauté,

Je me permets de vous embêter un instant avec un problème épineux.. Enfin pour moi...
J'ai développer une application SWING qui fonctionne parfaitement sous Windows... Histoire de m'assurer que mes scripts de lancement fonctionnent correctement, j'ai testé mon application sous UNIX (Ubuntu)...
En théorie, mis à part quelques différences minimes, cela ne devrait pas poser de problème... Et paf... mon application se lance bien, le seul problème que je rencontre concerne la maximisation de la fenêtre...
Cette dernière est codée de sorte d'être directement en plein écran (
setExtentedState(Frame.MAXIMIZED_BOTH)
) mais non, elle ne veut pas...
je peux lui définir une taille minimale, qui elle est appliquée, je peux la maximiser une fois l'application démarrée, mais impossible de l'avoir maximisée directement...
J'ai fais un peu de googleling et j'ai trouver des pistes de réponses... Après test, non fausses pistes...

Quelqu'un aurait une idée du pourquoi il refuse la commande?

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 mars 2012 à 16:01
Bonjour,

Essaye d'exécuter ce code sous linux, si la fenêtre est bien maximisée, tu as la solution :

	public static void main(String[] args){
 boolean supported = Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH);
        System.out.printf("Supported: " + supported);
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame test = new JFrame();
                test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                
                test.pack();
                test.setExtendedState(Frame.MAXIMIZED_BOTH);
                test.setVisible(true);
            }
        });
}
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 mars 2012 à 16:03
Ha oui, et Ubuntu, ce n'est pas Unix mais c'est une distribution Linux
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
8 mars 2012 à 16:30
Merci pour la réponse et la correction,

Après teste de ton code, la commande est supportée...

Je fais un workaround (pas besoin de perdre tant de temps sur ce sujet ^^) avec la commande
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
.
au final cela me donne le meme résultat visuel...

merci pour l'astuce du isFrameStateSupported(...) je ne la connaissais pas...
0
Rejoignez-nous