web-dev-qa-db-fra.com

Comment définir JFrame pour apparaître centré, quelle que soit la résolution du moniteur?

Lorsque je travaille avec Java, j'ai du mal à positionner ma fenêtre principale au centre de l'écran lorsque je lance l'application.

Est-ce que je peux faire ça? Il ne doit pas nécessairement être centré verticalement, l'alignement horizontal est l'objectif le plus important pour moi. Mais l'alignement vertical est également le bienvenu.

186
AmateurProgrammer

Je l'ai toujours fait de cette façon:

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);

this est le JFrame impliqué.

220
Jack

Utilisez setLocationRelativeTo(null)

Cette méthode a un effet spécial lorsque vous lui passez un null. Selon le Javadoc:

Si le composant est null ou si la configuration GraphicsConfiguration associée à ce composant est null, la fenêtre est placée au centre de l'écran.

Cela devrait être fait après avoir défini la taille ou appelé pack(), mais avant de le rendre visible, comme ceci:

frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
501
JRL

Vous pouvez appeler JFrame.setLocationRelativeTo(null) pour centrer la fenêtre. Assurez-vous de mettre ceci avant JFrame.setVisible(true)

53
Greg

Cliquez simplement sur le formulaire et accédez aux propriétés de JFrame, puis à l'onglet Code et cochez Generate Center.

enter image description here

27
علاء علام

Aussi simple que cela ...

setSize(220, 400);
setLocationRelativeTo(null);  

ou si vous utilisez un cadre, définissez-le sur

frame.setSize(220, 400);
frame.setLocationRelativeTo(null);  

Pour plus de précision, de la documentation :

Si le composant est null ou si la configuration GraphicsConfiguration associée à ce composant est null, la fenêtre est placée au centre de l'écran.

11
gcclinux

Vous aurez la taille définie, après avoir ajouté ceci:

frame.setLocationRelativeTo(null);

7
philanderson556

j'utilise NetBeans IDE 7.2.1 comme environnement de développement. Vous disposez alors d'une option pour configurer les propriétés de JForm.

dans les propriétés de JForm, allez dans l'onglet "Code" et configurez le "Générer le centre". vous devez d’abord définir la stratégie de taille de formulaire sur "Générer un code de redimensionnement".

7
Asaf Magen

J'utilise NetBeans IDE 7.3 et voici comment je centralise mon image JFrame. Assurez-vous de cliquer sur le panneau JFrame et d'accéder à la barre de propriétés de votre JFrame, de cliquer sur la barre de code et de cocher la case Générer le centre.

6
Gstuntz Wonderz

Si vous utilisez NetBeans, cliquez simplement sur le cadre en mode Création, puis sur l'onglet Code de ses propriétés. Ensuite, cochez la case "Générer le centre". Cela fera le travail.

2
Kingsley Ijike

Vous pouvez utiliser cette méthode, qui permet de centrer l’image JFrame en plein écran en même temps.

yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
1
The Appsolit

Si vous explicitement setPreferredSize(new Dimension(X, Y));, il est préférable d'utiliser:

setLocation(dim.width/2-this.getPreferredSize().width/2, dim.height/2-this.getPreferredSize().height/2);

1
user7205283

Dans Net Beans GUI - accédez à jframe (clic droit sur les propriétés jFrame dans Navigator), sous le code ) , ( règle de la taille du formulaire propriété sélectionner Générer un code de redimensionnement . Dans la même fenêtre, Décochez Generate Position et cochez Generate Size. et centre .

Profitez de la programmation. Ramana

0
K V Ramana

Pour Java Swing:

Allez dans "Navigateur" -> "JFrame" -> "Propriétés" -> "Code" -> cochez Generate Center

0
Carlos Maemo