.

.

martes, 29 de noviembre de 2016

Swing-JFrame (JAVA-ECLIPSE)

                                                   JFRAME EN JAVA

La clase JFrame implementa un objeto ventana, JFrame es una extensión de la clase Frame del paquete AWT.

Para crear una ventana, existen dos formas principales de hacerlo:
Crear un objeto de la clase JFrame
Extender la clase JFrame

El último método es muy útil cuando se crean ventanas personalizadas que se invocan repetidamente (como ventanas de error, o de información).
Crearemos una ventana con el primer método:
ventana = new JFrame();

Una vez creado una ventana JFrame, ésta obtiene el tamaño necesario para mostrar los componentes que existen dentro de la aplicación, como en nuestro ejemplo no existe componente, cambiaremos su tamaño inicial, con el método:

setSize(int ancho, int largo)
ventana.setSize(200,300);

Después cambiaremos su título para que sea el nombre de nuestra aplicación con el método: setTitle(String titulo)
ventana.setTitle("Hola mundo Swing");

El objeto existe, pero no es mostrado por defecto, entonces se hace la llamada a: setVisible(boolean)


ventana.setVisible(true);

La componente básica que requerimos cada vez que implementamos una interfaz visual con la libraría Swing es la clase JFrame. Esta clase encapsula una Ventana clásica de cualquier sistema operativo con entorno gráfico (Windows, OS X, Linux etc.)
Hemos dicho que esta clase se encuentra en el paquete javax.swing y como generalmente utilizamos varias clases de este paquete luego para importarla utilizamos la sintaxis:

import javax.swing.*;
Podemos hacer una aplicación mínima con la clase JFrame:
import javax.swing.JFrame;
public class Formulario {
    public static void main(String[] ar) {
        JFrame f=new JFrame();
        f.setBounds(10,10,300,200);
        f.setVisible(true);
    }
}

Como vemos importamos la clase JFrame del paquete javax.swing:
import javax.swing.JFrame;
y luego en la main definimos y creamos un objeto de la clase JFrame (llamando luego a los métodos setBounds y setVisible):

    public static void main(String[] ar) {
        JFrame f=new JFrame();
        f.setBounds(10,10,300,200);
        f.setVisible(true);
    }


Pero esta forma de trabajar con la clase JFrame es de poca utilidad ya que rara vez necesitemos implementar una aplicación que muestre una ventana vacía.
Lo más correcto es plantear una clase que herede de la clase JFrame y extienda sus responsabilidades agregando botones, etiquetas, editores de línea etc.


Entonces la estructura básica que emplearemos para crear una interfaz visual será:

import javax.swing.*;
public class Formulario extends JFrame{
    public Formulario() {
        setLayout(null);
    }

    public static void main(String[] ar) {
        Formulario formulario1=new Formulario();
        formulario1.setBounds(10,20,400,300);
        formulario1.setVisible(true);
    }
}


Importamos el paquete donde se encuentra la clase JFrame:
import javax.swing.*;

Planteamos una clase que herede de la clase JFrame:
public class Formulario extends JFrame{

En el constructor indicamos que ubicaremos los controles visuales con coordenadas absolutas mediante la desactivación del Layout heredado (más adelante veremos otras formas de ubicar los controles visuales dentro del JFrame):

    public Formulario() {
        setLayout(null);
    }

En la main creamos un objeto de la clase y llamamos a los métodos setBounds y setVisible:

    public static void main(String[] ar) {
        Formulario formulario1=new Formulario();
        formulario1.setBounds(10,20,400,300);
        formulario1.setVisible(true);
    }

El método setBounds ubica el JFrame (la ventana) en la columna 10, fila 20 con un ancho de 400 píxeles y un alto de 300.
Debemos llamar al método setVisible y pasarle el valor true para que se haga visible la ventana.

No hay comentarios:

Publicar un comentario