Comment définir JFrame pour qu’il soit centré, quelle que soit la résolution du moniteur?

En travaillant 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 le faire? Il n’a pas besoin d’être centré verticalement, l’alignement horizontal est l’objective le plus important pour moi. Mais l’alignement vertical est également le bienvenu.

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); 

où c’est le JFrame impliqué.

Utilisez setLocationRelativeTo(null)

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

Si le composant est nul ou si la configuration graphique 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 l’appel du pack() , mais avant de le rendre visible, comme ceci:

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

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

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

entrer la description de l'image ici

Aussi simple que cela …

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

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

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

Pour clarification, des documents :

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

J’utilise NetBeans IDE 7.2.1 comme environnement de développement et vous avez la possibilité de configurer les propriétés JForm.

Dans les propriétés de JForm, accédez à l’onglet “Code” et configurez le “Générer un centre”. vous devez d’abord définir la stratégie de taille de formulaire sur «Générer le code de redimensionnement».

J’utilise NetBeans IDE 7.3 et voici comment je centralise mon JFrame. Assurez-vous de cliquer sur JFrame Panel et accédez à votre barre de propriétés JFrame, cliquez sur la barre de code et cochez la case Generate Center.

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

frame.setLocationRelativeTo(null);

Si vous utilisez NetBeans, cliquez simplement sur le cadre dans la vue de conception, puis sur l’onglet de code de ses propriétés. Ensuite, cochez “Générer un centre”. Cela va faire le travail.

Si vous setPreferredSize(new Dimension(X, Y)); explicitementPreferredSize setPreferredSize(new Dimension(X, Y)); alors il vaut mieux utiliser:

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

Vous pouvez utiliser cette méthode, qui permet à JFrame d’être centré et plein écran en même temps.

 yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);