[java] Comment définir JFrame pour apparaître centré, indépendamment de la résolution du moniteur?



Answers

Utilisez setLocationRelativeTo(null)

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

Si le composant est nul ou si la configuration graphique associée à ce composant est nulle, 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 définir visible, comme ceci:

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

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 être centré verticalement, l'alignement horizontal est l'objectif le plus important pour moi. Mais l'alignement vertical est également le bienvenu.




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

frame.setLocationRelativeTo(null);




J'utilise NetBeans IDE 7.2.1 comme mon environnement de développement et là vous avez une option pour configurer les propriétés JForm.

dans les propriétés JForm allez dans l'onglet 'Code' et configurez 'Generate Center'. Vous devez d'abord définir la règle de taille de formulaire sur "Générer le code de redimensionnement".




Cliquez simplement sur le formulaire et allez dans les propriétés de JFrame, puis sur l'onglet Code et cochez Generate Center .




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




Related