Comment puis-je obtenir la largeur et la hauteur d'un JFrame étendu? (Fait par)Taille de jframe étendu?
setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);
Comment puis-je obtenir la largeur et la hauteur d'un JFrame étendu? (Fait par)Taille de jframe étendu?
setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);
Après frame.setVisible(true)
:
double width = frame.getSize().getWidth();
double height = frame.getSize().getHeight();
frame.getContentPane().getSize();
Vous perdrez la taille de la barre de titre de la décoration. Ou obtenez le rootPane, encore mieux.
Cela ne fonctionne pas, Il me donne encore la dimension de jeu précédent. –
Ajouter à mon commentaire:
Uhm ce qui est erroné d'appeler getWidth et getHeight après la mise en JFrame à JFrame.MAXIMIZED_BOTH
Etes-vous sûr vous l'appelez après JFrame
est visible et l'état de la taille a été changé? à savoir:
frame.setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);
frame.pack();
frame.setVisible(true);
System.out.println(frame.getWidth()+" "+frame.getHeight());
Une autre solution est d'obtenir simplement la taille des écrans via
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();
System.out.println("Screen Bounds: " + bounds);
que ce serait la taille de JFrame
dans JFrame.MAXIMIZED_BOTH
état
+1, presque ... et si vous avez 2 moniteurs ou plus? :) -le dernier temps n'a pas fonctionné pour moi: mon cadre était seulement dans 1 moniteur –
@matheszabi bonne question peut-être passer par tous les moniteurs connectés et accumuler leurs largeurs/hauteurs ferait l'affaire –
Votre solution fonctionne mais il y a quelques captures à lui, comme l'a dit Matheszabi, et cela ne dépend pas de jframe aso. Eng. Fouad a donné la bonne réponse –
Uhm ce qui est erroné d'appeler 'getWidth' et 'getHeight 'après avoir mis JFrame à 'JFrame.MAXIMIZED_BOTH' –
Il me donne seulement la largeur et la hauteur précédente –