Java JFrame zentriert in der Mitte positionieren

JFrame zentriert in der Mitte positionieren

Ohne Positionierungsanweisungen steht ein JFrame zunächst immer in der linken oberen Bildschirm-Ecke.
Häufig will man den Frame aber zentrieren, z. B. in die Bildschirmmitte oder in die Mitte einer anderen Komponente, zum Beispiel in der Mitte eines übergeordneten Fensters.
Die Methode setLocation() des Swing-APIs ist dabei nicht immer die einfachste. Schneller geht es häufig mit setLocationRelativeTo().

JFrame in die Mitte des Parents

Zentrieren am einfachsten mit:
    // JFrame zentriert zum Parent positionieren:
    setLocationRelativeTo(getParent());

JFrame in die Mitte des Bildschirms

Zentrieren am einfachsten mit:
    // JFrame zentriert zur Bildschirmmitte, also JFrame in der Mitte des Bildschirms positionieren:
    setLocationRelativeTo(null);

JFrame in die Mitte des Bildschirms auf Basis von Koordinaten

Zentrieren am einfachsten mit:
    // JFrame zentriert positionieren; selbst berechnet:
    final Dimension d = this.getToolkit().getScreenSize();
    this.setLocation((int) ((d.getWidth() - this.getWidth()) / 2), (int) ((d.getHeight() - this.getHeight()) / 2));

JFrame rechts oben positionieren

Auf Basis der Koordinaten kann man einen JFrame auch einfach rechts oben auf dem Bildschirm platzieren:
    // JFrame oben rechts auf dem Bildschirm:
    final Dimension d = this.getToolkit().getScreenSize();
    this.setLocation((int) (d.getWidth() - this.getWidth()), 0);

Window, JDialog zentrieren

Alle oben genannten Methoden zum zentrieren eines Fensters funktionieren nicht nur beim JFrame, sondern bei allen Fenstern, die von java.awt.Window erben, da die Methode setLocationRelativeTo bereits in der Klasse java.awt.Window implementiert ist.
Insbesondere sind dies:



Nach oben, Inhaltsverzeichnis, Impressum Admin: Artikel editieren