Fenster mittig auf dem Bildschirm positionieren (Java): Unterschied zwischen den Versionen
K |
K |
||
Zeile 5: | Zeile 5: | ||
In Java-Versionen vor Java 1.4 kann ein Programmfenster folgendermaßen auf dem Bildschirm zentriert werden: | In Java-Versionen vor Java 1.4 kann ein Programmfenster folgendermaßen auf dem Bildschirm zentriert werden: | ||
− | < | + | <syntaxhighlight lang="java">public class MyFrame { |
public MyFrame(String title) { | public MyFrame(String title) { | ||
Zeile 24: | Zeile 24: | ||
}); | }); | ||
} | } | ||
− | }</ | + | }</syntaxhighlight> |
=Mit Java ab Version 1.4= | =Mit Java ab Version 1.4= | ||
− | < | + | <syntaxhighlight lang="java">public class MyFrame { |
public MyFrame(String title) { | public MyFrame(String title) { | ||
Zeile 46: | Zeile 46: | ||
}); | }); | ||
} | } | ||
− | }</ | + | }</syntaxhighlight> |
[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 {{JAPI|java.awt.Window}} implementiert und kann somit in bzw. für Klassen verwendet werden, die von {{JAPI|Window}} erben. | [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 {{JAPI|java.awt.Window}} implementiert und kann somit in bzw. für Klassen verwendet werden, die von {{JAPI|Window}} erben. |
Version vom 9. März 2018, 15:08 Uhr
Am Beispiel der Klasse MyFrame, die von javax.swing.JFrame
(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:
public class MyFrame {
public MyFrame(String title) {
JFrame frame = new JFrame(title);
frame.setDefaultCloseOperation(JFrame.DISPOSE_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
frame.setBounds((screenSize.width-windowWidth)/2, (screenSize.height-windowHeight)/2, windowWidth, windowHeight);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MyFrame("Byte-Welt.net");
}
});
}
}
Mit Java ab Version 1.4
public class MyFrame {
public MyFrame(String title) {
JFrame frame = new JFrame(title);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MyFrame("Byte-Welt.net");
}
});
}
}
setLocationRelativeTo(java.awt.Component) wurde zum ersten Mal in Java 1.4 in java.awt.Window
implementiert und kann somit in bzw. für Klassen verwendet werden, die von Window
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.