Centrar un JFrame

25/Sep/2010 Java , , , 7 Comentarios

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.

  1. public class CentrarJFrame extends JFrame {
  2. public CentrarJFrame(){...}
  3. }

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.

  1. public class CentrarJFrame extends JFrame {
  2. public CentrarJFrame(){
  3. setLocationRelativeTo(null);
  4. }
  5. }

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. 🙂

  1. public class CentrarJFrame extends JFrame {
  2. public CentrarJFrame(){
  3. super("Centrar JFrame");
  4.  
  5. Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
  6. int height = pantalla.height;
  7. int width = pantalla.width;
  8. setSize(width/2, height/2);
  9.  
  10. setLocationRelativeTo(null);
  11. setVisible(true);
  12. }
  13. }

Vídeos sobre Java Swing


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

7 comentarios en “Centrar un JFrame”

Víctor Cuervo

cristhian

hola ouro ns si te conviene hacer eso con las ventanas proba haciendo esto:
new menu().show();///la pantalla q quieres llamar
this.dispose();///con esto sierras y liberar la pantalla donde estabas
espero te sirva saludos

Víctor Cuervo

cristhian

muy buen aporte gracias

Víctor Cuervo

Ouro

No esta mal el truco, yo estoy haciendo una aplicacion que primero tiene una ventana de login y luego cuando conecta le hago setVisible(false) y pongo la otra ventana, esta bien ese truco o hay alguna manera mejor?

Víctor Cuervo

lineadecodigo

@André,

Me alegro que te haya servido. 🙂

Víctor Cuervo

André

Muchas gracias lineadecodigo, era justo lo que buscaba. Un saludo desde Lima.

Víctor Cuervo

daniel loza

hola estoy en eclipse. visual class, con nombre: Clase01, he copiado el codigo en un void y luego lo invoco desde el constructor, cuando lo ejecuto no sale centrado….por que?..gracias

Los comentarios están cerrados.