Fenster mittig auf dem Bildschirm positionieren (Java): Unterschied zwischen den Versionen
(+Leerzeichen nach API) |
|||
Zeile 2: | Zeile 2: | ||
Dazu zunächst folgender Code: | Dazu zunächst folgender Code: | ||
+ | =Mit Java bis Version 1.4= | ||
+ | |||
+ | In Java-Versionen vor Java 1.4 kann ein Programmfenster folgendermaßen auf dem Bildschirm zentriert werden: | ||
<code=java>public class MyFrame extends JFrame { | <code=java>public class MyFrame extends JFrame { | ||
Zeile 8: | Zeile 11: | ||
super(title); | super(title); | ||
− | + | setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); | |
+ | |||
+ | int windowWidth = 800; //Breite des Programmfensters in Pixel | ||
+ | |||
+ | int windowHeight = 600; //Höhe des Programmfensters in Pixel | ||
− | + | Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //Bildschirmdimensionen in Pixeln holen | |
− | + | setBounds((screenSize.width-windowWidth)/2, (screenSize.height-windowHeight)/2, windowWidth, windowHeight); | |
} | } | ||
Zeile 24: | Zeile 31: | ||
} | } | ||
}</code=java> | }</code=java> | ||
− | |||
− | |||
− | |||
− | |||
+ | =Mit Java ab Version 1.4= | ||
− | |||
<code=java>public class MyFrame extends JFrame { | <code=java>public class MyFrame extends JFrame { | ||
Zeile 38: | Zeile 41: | ||
super(title); | super(title); | ||
− | + | setSize(600, 400); //Dimensionen des Fensters festlegen | |
− | + | setLocationRelativeTo(null); //Fenster zentrieren | |
− | + | setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); | |
− | |||
− | |||
− | |||
− | |||
} | } | ||
Zeile 58: | Zeile 57: | ||
} | } | ||
}</code=java> | }</code=java> | ||
+ | |||
+ | [http://java.sun.com/javase/6/docs/api/java/awt/Window.html#setLocationRelativeTo(java.awt.Component) setLocationRelativeTo(java.awt.Component)] wurde zum ersten Mal in Java 1.4 in {{API|java/awt/Window|java.awt.Window}} implementiert und kann somit in bzw. für Klassen verwendet werden, die von {{API|java/awt/Window|Window}} erben. | ||
+ | Wichtig bei ihrer Verwendung ist die Reihenfolge der Anweisungen. Der Aufruf der <i>setLocationRelativeTo()</i>-Methode darf erst nach der Dimensionierung z.B. mit <i>setSize()</i> oder <i>pack()</i> des Programmfensters erfolgen, da sie ihre Funktion sonst nicht erfüllen kann. | ||
+ | Der <i>setLocationRelativeTo()</i>-Methode kann statt <i>null</i> eine Referenz auf eine Component übergeben werden. Dann wird sich das Fenster relativ zu dieser Component positionieren. | ||
+ | |||
[[Kategorie:Java]] | [[Kategorie:Java]] | ||
[[Kategorie:Swing]] | [[Kategorie:Swing]] |
Version vom 4. April 2010, 08:57 Uhr
Am Beispiel der Klasse MyFrame, die von Vorlage:API (Swing) erbt, soll demonstriert werden, wie ein Programmfenster auf einfache Weise auf dem Bildschirm zentriert werden kann.
Dazu zunächst folgender Code:
Mit Java bis Version 1.4
In Java-Versionen vor Java 1.4 kann ein Programmfenster folgendermaßen auf dem Bildschirm zentriert werden: <code=java>public class MyFrame extends JFrame {
public MyFrame(String title) {
super(title);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
int windowWidth = 800; //Breite des Programmfensters in Pixel
int windowHeight = 600; //Höhe des Programmfensters in Pixel
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //Bildschirmdimensionen in Pixeln holen
setBounds((screenSize.width-windowWidth)/2, (screenSize.height-windowHeight)/2, windowWidth, windowHeight);
}
public static void main(String[] args) {
new MyFrame("Title").setVisible(true);
}
}</code=java>
Mit Java ab Version 1.4
<code=java>public class MyFrame extends JFrame {
public MyFrame(String title) {
super(title);
setSize(600, 400); //Dimensionen des Fensters festlegen
setLocationRelativeTo(null); //Fenster zentrieren
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MyFrame("Title").setVisible(true);
}
}</code=java>
setLocationRelativeTo(java.awt.Component) wurde zum ersten Mal in Java 1.4 in Vorlage:API implementiert und kann somit in bzw. für Klassen verwendet werden, die von Vorlage:API erben. Wichtig bei ihrer Verwendung ist die Reihenfolge der Anweisungen. Der Aufruf der setLocationRelativeTo()-Methode darf erst nach der Dimensionierung z.B. mit setSize() oder pack() des Programmfensters erfolgen, da sie ihre Funktion sonst nicht erfüllen kann. Der setLocationRelativeTo()-Methode kann statt null eine Referenz auf eine Component übergeben werden. Dann wird sich das Fenster relativ zu dieser Component positionieren.