Centrer une jFrame
J'essaie de trouver mes images au centre de l'écran , je sais que ce code doit bien fonctionner:
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int x = (int) ((screen.getWidth() - getWidth()) /2);
int y = (int) ((screen.getHeight() -getHeight()) /2);
setLocation(x, y);
ou celui-ci :
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
setSize(screenWidth / 2, screenHeight / 2);
setLocation(screenWidth / 4, screenHeight / 4);
J'ai essayé tous les codes possibles, mais je ne sais pas pourquoi ils ne l'ont pas, il suffit de déplacer l'image dans le coin inférieur droit de l'écran, j'ai utilisé setRelative à null mais encore une fois cela ne fonctionne pas.
J'ai enfin pu apporter au cadre très proche du centre en multipliant la largeur par 5 et diviser par quelque chose, mais je sais que ce n'est pas de la bonne façon.
quelqu'un pourrait-il m'expliquer quel est le problème ?
Problème Résolu :
solution:
J'ai trouvé la meilleure façon moi-même , si jamais vous venez avec le même problème, il suffit de laisser le netbeans le faire automatiquement en allant dans propriétés et de la vérification de générer centre , oublier l'stupide codes.
Je viens de faire une Jframe dans netbeans et essayez de centre , je n'ai pas tout les codes spécifiques, donc il n'y a pas de bug os quelque chose
Si c'est possible, essayez de créer d'image vide et le centre. Puis, progressivement, ajouter les composants que vous souhaitez utiliser sur le et vérifiez que quand il commence à s'affiche pas dans le centre.
Je l'ai fait à plusieurs reprises, cela ne fonctionne pas je ne sais pas pourquoi je ne fonctionne pas.
OriginalL'auteur Loop Masters | 2012-06-27
Vous devez vous connecter pour publier un commentaire.
Le moyen le plus facile pour centre de l'image sur l'écran principal (il y a des options si vous avez multiplier les écrans) est d'utiliser setLocationRelativeTo(...) méthode frame avec null comme argument:
Dans le cas où cela ne fonctionne pas - essayer celui-ci (direct coordonnées):
Dernier et "ultime" exemple -, il affiche centrée cadre @ chaque système d'écran:
mon expérience a été que quand les gens vous demander si quelque chose est incorrect avec NetBeans ou Java, les chances que cela se produise sont < 0.001%. Les chances que quelque chose est incorrect avec votre compréhension de Java > disponibilité de 99,999%. Si vous pouvez nous montrer une petite compilable programme efficace qui démontre votre problème, nous serons mieux en mesure de vous montrer exactement où votre erreur est. 1+ pour Mikle Garin pour sa réponse.
Il devrait fonctionner. Il a toujours travailler sur n'importe quel OS. Me semble que vous avez quelques autres code qui modifie l'emplacement du cadre de après que l'appel de la méthode. Assurez-vous que vous ne faites pas appel setLocation/setBounds après setLocationRelativeTo appel de la méthode
Il vient apporter de l'image dans le coin inférieur droit et je ne comprends pas pourquoi ??
parce que vous avez un bug, probablement ailleurs dans le code, vous n'êtes pas à nous montrer. Pour tout ce que nous savons que vous essayez de faire tout cela avant de l'emballage de votre JFrame. Mais qui sait, puisqu'il s'agit de code ne s'affiche pas.
OriginalL'auteur Mikle Garin
C'est assez si vous utilisez
Selon Javadoc pour java.awt.De la fenêtre.setLocationRelativeTo(),
OriginalL'auteur Honza Zidek
peut-être pas mal avec netbeans
vous pouvez essayer
setLocationByPlatform
de ne pas centrer l'image sur de nombreuses plateformes. Donc cela pourrait être une bonne aider à diagnostiquer le problème, mais pas une bonne réponse à la question d'origine.OriginalL'auteur mKorbel
Je parie dollars pour beignes que vous définissez l'emplacement par rapport à la valeur null /définir l'emplacement par le biais de coordonnées x et y avant de définir la taille de la JFrame. Si vous n'avez pas réglé la taille encore, il est traité comme 0x0, la définition de la mort de centre de à la centre de l'écran. Si vous changez la taille, il quitte le topleft coin où il était (au centre de l'écran) et échelles vers le bas à droite de votre écran.
En d'autres termes, setSize() viennent avant le centrant sur l'écran.
Tout le reste vous n'avez semble bien pour moi.
OriginalL'auteur Nerdizzle