miércoles, 6 de septiembre de 2017

Colocar un Marco(JFrame) en el centro de la pantalla.

Muy buenas a tod@s, hoy os voy a dejar un programa en el que se explicala forma de colocar o situar un JFrame o un JWindow en el centro de la pantalla. Los ejemplos que vamos a ver están hechos para centrar un JFrame, pero serviría de igual forma que para un JWindow.

Es muy común que cuando creemos nuestros programas con interfaces gráficas queramos que se abran en el centro de la pantalla. Java nos proporciona un método que nos facilita mucho saber cual es la mitad horizontal y vertical de cada pantalla en particular. El método que nos hace esta gran labor es setLocationRelativeTo().

Antes de poner el código y ver el marco centrado, vamos a ver de dónde viene este método. Para ello, como siempre digo, hay que ir a la documentación de Java y buscar la clase JFrame, y desde allí buscar el método setLocationRelativeTo().
Si nos fijamos en la imagen anterior, podemos observar que el método setLocationRelativeTo() es heredado de la clase Window.
Vamos a indagar un poco más y vamos a ver qué nos indica en la descripción de dicho método. Para ello pinchamos en el enlace del método. Si habéis hecho lo que yo, habréis visto que este método tiene una gran descripción, pero nosotros vamos a quedarnos con la que muestra la siguiente imagen:


Vemos que hay que pasarle un argumento de tipo Component. Pero si leemos el primer punto dice:
Si el componente es null, o el GraphicsConfiguration asociado con ese componente es null, la ventanda es colocada en el centro de la pantalla.

¿Qué quiere decir todo esto? Primero, que si realmente queremos aprender a programar debemos saber cómo leer la documentación de Java, esto es importantísimo!!!. En segundo lugar, lo que quiere decir es que si invocamos el método setLocationRelativeTo(null) y le pasamos null como argumento, la ventana será colocada en el centro de la pantalla.
Veamos cómo quedaría el código

import javax.swing.*;

public class CentrandoMarco extends JFrame{
    
    public static void main(String[] args) {
        
        CentrandoMarco miMarco = new CentrandoMarco();
        
    }
    
    public CentrandoMarco() {
        
        super("Centrando el marco");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(550, 325);
        
        //Centramos el marco
        setLocationRelativeTo(null);
        
        setVisible(true);
        
    }
    
}


Así nos quedaría centrado nuestro marco. Facil ¿Verdad? Se que hubiera sido más fácil poner el código con el método que hace el trabajo y ya está, pero esa no es la finalidad de este blog. Mi intención es que sepáis, no solo a centrar el marco en este caso, sino a leer la documentación de Java. No hay mejor tutorial, ni mejor libro que la documentación de Java. Y si el inglés no es lo vuestro no es escusa, podéis utilizar el traductor de Google.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...