Formulario Funcionando en Java

En esta entrada se va a darle “vida” a un formulario en Java. en el post “mi primer formulario en java” se puede leer que no realiza ningún tipo de acción. Sin embargo tiene un diseño “estándar” ahora es momento de darle un poco de vida a ese formulario. Para ello se procede con las tres lineas que nunca deben de faltar; la importación de las librerías esas son:

import java.awt.*;
import java.awt.event:*;
import javax.swing:*;

Ahora es turno del código que permitirá a este formulario darle vida o que se pueda interactuar con él. Para ello se hará uso del siguiente código:

public class InterfazGraficaUsuario extends JFrame{
  //definiendo objetos
  JButton bEnviar, bSalir;
  JTextField tNombre;
  JLabel eNombre;
  public class InterfazGraficaUsuario (){
     eNombre = new JLabel("Escribe tu nombre: ");
     tNombre = new JTextField(10);
     bEnviar = new JButton("Enviar);
     bSalir = new JButton("Salir);
     bEnviar.addActionListener(bEnvar());
     bSalir.addActionListener(bSalir());
     add(eNombre);
     add(tNombre);
     add(bEnviar);
     add(bSalir);
     setLayout(new FlowLayout());
     setSize(400,150);
     setVisible(true);
  }
  public static void main (String args []){
     InterfazGraficaUsuario GUI = new InterfazGraficaUsuario();
  }
  class bEnviar implements ActionListener{
     public void actionPerformed(ActionEvent e){
         String nombre = tNombre.getText();
         JOptionPane.showMessageDialog(null,"Hola "+nombre);
     }
  }
  class bSalir implements ActionListener{
      public void actionPerformed(ActionEvent e){
         int resp = JOptionPane.showConfirmDialog(null,"¿Deseas salir?","¡Alerta!",JOptionPane.YES_NO_OPTION);
         if(resp == 0){
             System.exit(0);
         }
      }
  }
}

Bueno, ahora se verá a detalle el código. En la primera línea se está creando una clase que va a heredar atributos, métodos y demás propiedades de la clase JFrame, eso se sabe por que se utiliza la palabra reservada “extends“. De la línea dos a la cinco se esta definiendo los objetos que se van a usar se hace uso de los objetos JButton dos, uno que permitirá saludar al usuario y otro con el que se podrá salir del form; un JLabel el que permite colocar textos para indicarle al usuario que debe de agregar en el cuadro de texto y por último un JTextFiled, que es el cuadro de texto donde el usuario colocará su nombre.

De la línea seis a la 20, se crea el constructor de la clase, en ella se deben de agregar, es decir, se crea cada uno de los elementos que va a contener el formulario. Se instacía los objetos etiqueta, cuadro de texto, y botones. Eso se puede observar en el rango de las líneas siete a la diez.

En las lineas once y doce, son las que permite darle funcionalidad a los botones o como se comento al inicio de este post “se le da vida al formulario“, haciendo uso de la implementación de una interfaz de clase y del evento ActionListener. Que permite escuchar o en su momento detectar cuando ha sido pulsado un objeto con el botón primario del ratón. Observe el evento .addActionListener(bEnviar()) y .addActionListener(bSalir()).

Las lineas 13 – 16, son para agregar a cada uno de los objetos creados (etiqueta, cuadro de texto, botones y demás); son agregados a contenedor, en este ejercicio al JFrame. O en su caso podría ser el JPanel que en muchas ocasiones sirve de contenedor.

Las lienas 17 – 19, son para darle un flujo a cada uno de los objetos que se han creado, así cada objeto se va colocando de una forma secuencial (setLayout(new FlowLayout())). Se indica que dimensión tendrá la ventana (formulario) que se esta creando (setSize(400,150)). Y Finalmente se indica que debe de visualizarse la ventana (setVisible(true)).

De las lineas 21 a la 23, se puede observar que es para la creación del método principal, (public static void main (String args []), dentro de este método se estará mandando a llamar a la clase principal y sus métodos ( InterfazGraficaUsuario GUI = new InterfazGraficaUsuario() ). Es lo que permite que la aplicación se ejecute.

De la líneas 24 a la 29, se crea una clase que llevará el mismo nombre de ¡mplementación de una clase que se manda a llamar en la líneas 11. Primero se crea el nombre el nombre de la clase bEnviar seguido de la palabra implements y posteriormente la interfaz a la que se hará referencia. Luego hay que crear un método publico que es quien estará escuchando las acciones y / o pulsaciones del ratón y recibe como parámetro el evento que se este ejecutando eso es el ActionEvent. Dentro de este método se puede realizar todo lo que se requiera que ejecute el botón por jemplo para este caso. Se creo una variable de tipo cadena (String) en el que lleva por nombre, nombre donde sera igual o tendrá el valor de lo que se haya escrito en el cuadro de texto para obtener para ello se hace uso de la propiedad getText(). Lo que equivale en el código de ejemplo ha: tNombre.getText(); Recuerden que tNombre es el nombre del cuadro de texto que ese esta usando. Con esto se obtiene todo lo que este escrito en el cudro de texto. Y por último se le envía al usuario un mensaje de texto saludandolo.

De las líneas 30 a la 36 va el contenido del botón salir, este consiste en preguntarle al usuario si quiere salir de la aplicación (en nuestro caso el formulario), si el humano pulsa en sí entonces debe de salir y no en caso contrario. Para ello se hace uso de una ventana modal de confirmación (ver aquí para mas información). Donde consiste en una variable de tipo entera de nombre resp, el resultado que devolverá está, es cero para el no y uno en caso de que pulse en el botón de si. Por lo que solo hay que evaluar este resultado. Para ello se puede ver que en la línea 34 System.exit(0); es la línea de código que permite cerrar la ventana. En la imagen 1 se muestra un díseño de como debería de tener la ventana del formulario.

Imagen 1. Diseño del formulario en java. Fuente: Tumblr.com
Imagen 2. Código fuente compilado. Fuente: Tumblr
Imagen 3. Ejecución de los botones Enviar y Salir. Fuente: Tumblr.com
Video 1. Codificación de formulario en java. Fuente: Youtube.

Es posible que se note una ligera diferencia entre el formulario mostrado en la imagen tres y la que se puede apreciar en el vídeo. La razón es que se paso indicar cuantos eran los pixeles o el espacio que tendría el cuadro de texto, eso se indica en la línea ocho del código que se muestra en este post. Espero sea de su agrado.

Comparte esta entrada en tus redes sociales