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.
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ù this
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 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);
Vous pouvez appeler JFrame.setLocationRelativeTo(null)
pour centrer la fenêtre. Assurez-vous de mettre ceci avant JFrame.setVisible(true)
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.
Vous aurez la taille définie, après avoir ajouté ceci:
frame.setLocationRelativeTo(null);
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".
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.
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.
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);
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);
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
Pour Java Swing:
Allez dans "Navigateur" -> "JFrame" -> "Propriétés" -> "Code" -> cochez Generate Center