Diario de un programador.
Día 175
Java
Introducción a los gráficos.
Es hora de hacer una pequeña
introducción a los gráficos que son tan comunes hoy en día. En esta ocasión, se
presentarán los cuadros de dialogo, para lo cual se utilizará la clase
JOptionPane que se encuentra en el paquete javax.swing, en otras palabras, para
poder utilizar la classe JOptionPane, se debe importar el paquete javax.swing.
El primer método que se
utilizará será el método showMessageDialog, el cual permite mostrar un mensaje
de dialogo. Veamos un ejemplo.
Lo siguiente es crear una
clase, en mi caso se llamará Dialogo. Una vez creada la clase y el método main,
lo siguiente que se hará será importar la clase JOptionPane del paquete
javax.swing.
import javax.swing.JOptionPane;
public class Dialogo {
public static void main(String[] args){
}//fin main
}//fin class
Lo siguiente es agregar el método showMessageDialog. Se hace de la
siguiente manera:
import
javax.swing.JOptionPane;
public class Dialogo {
public static void main(String[] args){
JOptionPane.showMessageDialog(null,"Bienvenido
joven programador");
}//fin main
}//fin class
Eso es todo. Ahora solo
falta ejecutar el programa y si todo salió bien, entonces un mensaje debería de
mostrarse en pantalla.
La clase JOptionPane,
contiene cuadros de diálogos previamente empaquetados, los cuales permiten que
los programas muestren ventanas con mensajes.
El método showMessageDialog,
requiere de dos argumentos, el primero sirve para indicar la ubicación del
cuadro de dialogo, al ser null, el cuadro de dialogo aparece en el centro de la
pantalla. El segundo argumento corresponde al mensaje del cuadro.
El método showMessageDialog,
es un método static. A menudo los métodos static realizan operaciones que son
utilizadas con frecuencia, como en este caso el mostrar un mensaje y no
requieren que se cree explícitamente un objeto. Más adelante se darán mayores detalles
de los métodos static.
El siguiente método que se
presentará, es el que permite mostrar un cuadro de texto para solicitar datos
al usuario. El método es showInputDialog, este método requiere solo un
argumento y es el mensaje que mostrará en el cuadro. Ejemplo:
import
javax.swing.JOptionPane;
public class Dialogo {
public static void main(String[] args){
JOptionPane.showInputDialog("Ingresa
tu nombre:");
}//fin main
}//fin class
Al ejecutar el programa, aparece el siguiente cuadro de dialogo:
Al ingresar algún dato y
presionar el botón "Aceptar", nada sucede debido a que no hay nada
asociado a este cuadro de dialogo. Entonces, lo que se hará a continuación será
guardar lo ingresado por el usuario en una variable para que luego esta
información sea mostrada en un cuadro de mensaje. Se modificará el programa
anterior de la siguiente manera:
import
javax.swing.JOptionPane;
public class Dialogo {
public static void main(String[] args){
String nombre;
nombre =
JOptionPane.showInputDialog("Ingresa tu nombre:");
JOptionPane.showMessageDialog(null,"Saludos "+ nombre);
}//fin main
}//fin class
Como se puede ver, se creó
una variable de tipo String, a la cual llamé "nombre". Esta variable
es la encargada de almacenar lo ingresado por el usuario. Posteriormente esta
variable es utilizada en MessageDialog.
Ahora, si se ejecuta
nuevamente el programa y se escribe por ejemplo la palabra "alumno",
esto es lo que debería suceder:
Algo que no he mencionado
hasta el momento es que el método showInputDialog, solamente acepta cadenas
para sus ingresos. Entonces, si quiero por ejemplo realizar alguna operación
con números ¿cómo lo hago?. Para casos como estos, se puede convertir la cadena
ingresada en un entero, con el método Integer.parseInt(cadena). Mostraré este
método con un ejemplo simple, el cual verificará si el número ingresado es par
o impar. Este método lo que hace es convertir la cadena ingresada como
argumento a un número entero. En el ejemplo que se muestra a continuación, se
solicitó un número el cual fue guardado en la variable "cadena",
luego se utilizó el método Integer.parseInt para convertir la cadena ingresada
en un número entero. El número conseguido fue almacenado en la variable
"entero", con la cual se procedió a realizar las demás operaciones
que consisten en verificar si lo ingresado es un número par o no.
import
javax.swing.JOptionPane;
public class Pares {
public static void main(String[] args){
int entero;
String cadena;
cadena =
JOptionPane.showInputDialog("Ingresa un número");
entero =
Integer.parseInt(cadena);
if(entero % 2 == 0){
JOptionPane.showMessageDialog(null,"El número es par");
}
else{
JOptionPane.showMessageDialog(null,"El número es impar");
}
}//fin main
}//fin class
Con estos nuevos
conocimientos, es posible retomar "antiguos" programas que se
hicieron en capítulos anteriores y reprogramarlos utilizando estos métodos con
la finalidad de practicar. A modo de ejemplo, voy a reprogramar aquel programa
que servía para calcular el promedio de 5 números.
import javax.swing.JOptionPane;
public class Ejercicios {
public static void main(String[] args){
int i, numero, suma = 0;
double promedio;
String ingreso;
JOptionPane.showMessageDialog(null,
"Ingresa 5 números");
for(i = 1; i <= 5; i++){
ingreso = JOptionPane.showInputDialog("Ingreso Nro." + i);
numero =
Integer.parseInt(ingreso);
suma = suma + numero;
}
promedio = suma / 5;
JOptionPane.showMessageDialog(null,"El promedio es "+
promedio);
}//fin main
}//fin class
Actualización
Septiembre 2016
Para utilizar
esto de los cuadro de texto y mensajes en archivos distintos utilizando un constructor
y un método get y set. Mostraré un pequeño programa que solicita que ingrese un
nombre:
//Clase principal
import
javax.swing.JOptionPane;
public class Inicio{
public static void main(String []args){
String nombre;
Metodos
datos = new Metodos();
nombre
= JOptionPane.showInputDialog("Ingresa tu nombre:");
datos.setNombre(nombre);
JOptionPane.showMessageDialog(null, "Bienvenido "+
datos.getNombre());
}//fin
main
}//fin class
//Clase de
métodos
public class Metodos{
private
String nombre;
public
Metodos(){
nombre = "";
}
public void setNombre(String nom){
nombre = nom;
}
public
String getNombre(){
return
nombre;
}
}//fin class
Esto es todo por ahora. Para practicar, se pueden reprogramar algunos de los ejercicios planteados en el capítulo 56, hasta dominar estos nuevos métodos. Hasta la próxima.
Gustavo J. Cerda Nilo
Mayo 2016, Septiembre 2016