La idea de este ejemplo es ver como mostrar una aplicación Java Swing, en concreto un JFrame, al arrancar, centrado en la pantalla. Además nos vamos a apoyar en el ejemplo Conocer la resolución de la pantalla con Java para darle forma al JFrame que vamos a Centrar.
El procedimiento para centrar un JFrame lo vamos a codificar en el constructor de la clase. Así que lo primero será definir una clase que extienda de JFrame, constructor incluido.
public class CentrarJFrame extends JFrame {
public CentrarJFrame(){...}
}
Dentro del constructor del JFrame utilizamos el método setLocationRelativeTo() de la clase Window. El método setLocationRelativeTo() coloca la ventana en una posición relativa a un componente que le pasemos como parámetro. Pero si le pasamos null como parámetro, coloca a la ventana en el centro de la pantalla. Así ya habremos conseguido centrar un JFrame.
public class CentrarJFrame extends JFrame {
public CentrarJFrame(){
setLocationRelativeTo(null);
}
}
Como comentábamos antes, y apoyándonos en el ejemplo sobre Conocer la resolución de la pantalla con Java vamos a cuadrar el JFrame y haremos que sea la mitad del tamaño de la pantalla… por presentar algo de armonía. :-)
public class CentrarJFrame extends JFrame {
public CentrarJFrame(){
super("Centrar JFrame");
Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
int height = pantalla.height;
int width = pantalla.width;
setSize(width/2, height/2);
setLocationRelativeTo(null);
setVisible(true);
}
}