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());
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);
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));
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);
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 Klassejava.awt.Window
implementiert ist.
Insbesondere sind dies:
- JDialog zentrieren:
jDialog.setLocationRelativeTo(null)
; - Window zentrieren:
window.setLocationRelativeTo(null);
Nach oben, Inhaltsverzeichnis, Impressum |
Admin: Artikel editieren |