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.
Problema 1:
Confeccionar el programa "Hola Mundo" utilizando una interfaz gráfica de usuario.
Programa:
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:
No hay comentarios.:
Publicar un comentario