[java] JFrame et ouverture directe en plein ecran

Comment ouvrir une fenetre a base de JFrame en grand sans que l’utilisateur ai a cliquez sur l’icone d’agrandissement?

la methode setsize(1024,758) marche bien mais ne me convient pas trop.

a vos idée

merci

j’avais deja trouvé et essayé sans succès la méthode setExtendState(blabla…)

sinon a quoi te sert la classe GraphicsEnvironment ?

j’ai trouvé :

code :

this.pack();
this.setDefaultLookAndFeelDecorated(true);
this.setExtendedState(this.MAXIMIZED_BOTH);

Merci Paneb :wink:

SI tu ne veux pas que la fenetre soi maximisé par déFaut (donc quelle soit plein écran, mais que tu puisses la déplacer tout de même, tu peux utiliser:

import java.awt.Toolkit; (dans les import)

Dans ton constructeur…

  Toolkit outil = getToolkit();
  this.setSize(outil.getScreenSize()); //this étant L'instance de la JFrame

Avec la méthode
this.setSize(getToolkit().getScreenSize());
this est la JFrame et il n’y a pas d’import java.awt.Toolkit;
La JFrame dépasse les bords.

Pour remédier au problème, il faut faire :
this.setSize((int)getToolkit().getScreenSize().getWidth(), ((int)getToolkit().getScreenSize().getHeight() - 40));

En suivant mon raisonnement :

  • getToolkit().getScreenSize() renvoie un objet Dimension, mais pour avoir la taille qu’on veut, on doit avoir 2 int
  • L’objet Dimension à 2 méthodes qui nous seront utiles : getWidth() et getHeight()
  • Jusqu’à maintenant, on a this.setSize(getToolkit().getScreenSize().getWidth(), getToolkit().getScreenSize().getHeight());
  • Malheur ! Les méthodes renvoient des double ! Le code ne marche pas !
  • Après un cast (et une perte de précision), on a
    this.setSize((int)getToolkit().getScreenSize().getWidth(), (int)getToolkit().getScreenSize().getHeight());
  • Pour l’instant, c’est pareil qu’avec le Dimension
  • Le seul int qui ne va pas, c’est celui de getHeight().
  • On enlève donc un nombre de pixels qu’on définit (j’ai mis 40) :
    this.setSize((int)getToolkit().getScreenSize().getWidth(), ((int)getToolkit().getScreenSize().getHeight() - 40));