.

.

miércoles, 30 de noviembre de 2016

INTERFACES VISUALES(COMPONENTES SWING)

           Interfaces visuales  (componentes Swing)


Hasta ahora hemos resuelto todos los algoritmos haciendo las salidas a través de una consola en modo texto. La realidad que es muy común la necesidad de hacer la entrada y salida de datos mediante una interfaz más amigables con el usuario.


En Java existen varias librerías de clase para implementar interfaces visuales. Utilizaremos las componentes Swing.

Componentes Java Swing

Como se mencionó en la introducción a Java Swing, este paquete nos brinda ciertas facilidades para la construcción de interfaces graficas de usuario........ en esta entrada vamos a conocer a nivel general algunos de los principales componentes que podemos usar en nuestras GUI's...

Hasta el momento hemos visto lo que es Swing, las diferencias entre JFrame y JDialog así como un pequeño ejemplo sobre la creación de Ventanas incluyendo también 2 componentes tales como los botones y las etiquetas de texto.

En esta entrada enunciaremos algunos de los principales componentes, tal vez no podamos trabajarlos todos pero es bueno saber que existen, conociendo nuevas opciones para vincular en nuestros desarrollos...

¿Qué son Los Componentes Gráficos?

Como se ha mencionado, los componentes gráficos son estos elementos que permiten brindar una interacción con el usuario del sistema..... Cada componente corresponde a una clase en Java, por esta razón cuando desarrollamos y queremos vincular uno de estos elementos simplemente instan-ciamos la clase que necesitamos, es decir, si queremos un Área de texto debemos crear un objeto de la clase JTextArea.

Problema 1:
Confeccionar el programa "Hola Mundo" utilizando una interfaz gráfica de usuario.


import javax.swing.*;
public class Formulario extends JFrame{
    private JLabel label1;
    public Formulario() {
        setLayout(null);
        label1=new JLabel("Hola Mundo.");
        label1.setBounds(10,20,200,30);
        add(label1);
    }
   
    public static void main(String[] ar) {
        Formulario formulario1=new Formulario();
        formulario1.setBounds(10,10,400,300);
        formulario1.setVisible(true);
    }

}


Hasta ahora habíamos utilizado la clase Scanner para hacer la entrada de datos por teclado. Dicha clase debemos importarla en nuestro programa con la sintaxis:

import java.util.Scanner;
Otra sintaxis para importarla es:
import java.util.*;

Si disponemos un * indicamos que importe todas las clases del paquete java.util.
Ahora bien las componentes Swing hay que importarlas del paquete javax.swing. Cuando debemos importar varias componentes de un paquete es más conveniente utilizar el asterisco que indicar cada clase a importar:

import javax.swing.JFrame;
import javax.swing.JLabel;
En lugar de las dos líneas anteriores es mejor utilizar la sintaxis:
import javax.swing.*;

La clase JFrame encapsula el concepto de una ventana. Luego para implementar una aplicación que muestre una ventana debemos plantear una clase que herede de la clase JFrame:
public class Formulario extends JFrame{
Con la sintaxis anterior estamos indicando que que la clase Formulario hereda todos los métodos y propiedades de la clase JFrame.

Para mostrar un texto dentro de una ventana necesitamos requerir la colaboración de la clase JLabel (que tiene por objetivo mostrar un texto dentro de un JFrame)
Definimos luego como atributo de la clase un objeto de la clase JLabel:

    private JLabel label1;

En el constructor de la clase llamamos al método heredado de la clase JFrame llamado setLayout y le pasamos como parámetro un valor null, con esto estamos informándole a la clase JFrame que utilizaremos posicionamiento absoluto para los controles visuales dentros del JFrame.

    public Formulario() {
        setLayout(null);

Luego tenemos que crear el objeto de la clase JLabel y pasarle como parámetro al constructor el texto a mostrar:

        label1=new JLabel("Hola Mundo.");

Ubicamos al objeto de la clase JLabel llamando al método setBounds, este requiere como parámetros la columna, fila, ancho y alto del JLabel. Finalmente llamamos al método add (metodo heredado de la clase JFrame) que tiene como objetivo añadir el control JLabel al control JFrame.

        label1=new JLabel("Hola Mundo.");
        label1.setBounds(10,20,200,30);
        add(label1);
    }
Finalmente debemos codificar la main donde creamos un objeto de la clase Formulario, llamamos al método setBounds para ubicar y dar tamaño al control y mediante el método setVisible hacemos visible el JFrame:

    public static void main(String[] ar) {
        Formulario formulario1=new Formulario();
        formulario1.setBounds(10,10,400,300);
        formulario1.setVisible(true);
    }
Cuando ejecutamos nuestro proyecto tenemos como resultado una ventana similar a esta:


                           JFrame y JLabel

No hay comentarios:

Publicar un comentario