Bei der Arbeit mit Java fällt es mir schwer, mein Hauptfenster in der Mitte des Bildschirms zu positionieren, wenn ich die Anwendung starte.
Kann ich das auf irgendeine Weise tun? Es muss nicht vertikal zentriert sein, horizontale Ausrichtung ist für mich das wichtigere Ziel. Aber auch eine vertikale Ausrichtung ist erwünscht.
Ich habe es immer so gemacht:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
dabei ist this
der beteiligte JFrame.
Verwenden Sie setLocationRelativeTo(null)
Diese Methode hat einen besonderen Effekt, wenn Sie ein null
übergeben. Laut Javadoc:
Wenn die Komponente null ist oder die dieser Komponente zugeordnete GraphicsConfiguration null ist, wird das Fenster in der Mitte des Bildschirms platziert.
Dies sollte nach dem Festlegen der Größe oder dem Aufrufen von pack()
geschehen, aber bevor es sichtbar gemacht wird, wie folgt:
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Sie können JFrame.setLocationRelativeTo(null)
aufrufen, um das Fenster zu zentrieren. Stellen Sie sicher, dass dies vor JFrame.setVisible(true)
steht.
So einfach ist das ...
setSize(220, 400);
setLocationRelativeTo(null);
wenn Sie einen Rahmen verwenden, stellen Sie den Rahmen auf
frame.setSize(220, 400);
frame.setLocationRelativeTo(null);
Zur Verdeutlichung aus den Dokumenten :
Wenn die Komponente null ist oder die dieser Komponente zugeordnete GraphicsConfiguration null ist, wird das Fenster in der Mitte des Bildschirms platziert.
Die eingestellte Größe erhalten Sie, nachdem Sie Folgendes hinzugefügt haben:
frame.setLocationRelativeTo(null);
ich verwende NetBeans IDE 7.2.1 als meine Entwicklerumgebung und dort haben Sie die Möglichkeit, die JForm-Eigenschaften zu konfigurieren.
gehen Sie in den JForm-Eigenschaften zur Registerkarte 'Code' und konfigurieren Sie das 'Generate Center'. Sie müssen zunächst die Formulargrößenrichtlinie auf "Größenänderungscode generieren" einstellen.
Ich verwende NetBeans IDE 7.3 und auf diese Weise kann ich meinen JFrame zentralisieren. Stellen Sie sicher, dass Sie im JFrame-Bedienfeld auf Ihre JFrame-Eigenschaftsleiste klicken, auf die Codeleiste klicken und "Generate Center" auswählen Kontrollkästchen.
Wenn Sie NetBeans verwenden, klicken Sie einfach auf den Rahmen in der Entwurfsansicht und dann auf die Registerkarte Code in den Eigenschaften. Aktivieren Sie als Nächstes "Generate Center". Das wird die Arbeit erledigen.
Sie können diese Methode verwenden, mit der der JFrame gleichzeitig zentriert und im Vollbildmodus angezeigt werden kann.
yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
Wenn Sie setPreferredSize(new Dimension(X, Y));
explizit verwenden, ist es besser, Folgendes zu verwenden:
setLocation(dim.width/2-this.getPreferredSize().width/2, dim.height/2-this.getPreferredSize().height/2);
Gehen Sie in der Net Beans-GUI zu jframe und klicken Sie mit der rechten Maustaste auf jFrame in den Navigator-Eigenschaften unter . code, Formatierungsrichtlinie Eigenschaft select Generate Ändern Sie die Größe von Code. Deaktivieren Sie im selben Fenster Position generieren und aktivieren Sie Größe generieren und zentrieren.
Viel Spaß beim Programmieren. Ramana
Für Java Swing:
Gehen Sie zu "Navigator" -> "JFrame" -> "Eigenschaften" -> "Code" -> aktivieren Sie "Generate Center"