Ejemplo 1: Validando entradas con JOptionPane
Supongamos que queremos crear una clase que nos permita validar si una entrada de usuario es un número entero utilizando JOptionPane. A continuación, se muestra un ejemplo de cómo podríamos implementar esta funcionalidad:
import javax.swing.JOptionPane;
public class ValidadorEntrada {
public static int validarEntrada() {
int numero = 0;
boolean entradaValida = false;
while (!entradaValida) {
String entrada = JOptionPane.showInputDialog("Ingrese un número entero:");
try {
numero = Integer.parseInt(entrada);
entradaValida = true; // La entrada es válida, salimos del ciclo
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Entrada no válida. Por favor, ingrese un número entero.");
}
}
return numero;
}
void main(String[] args) {
int numeroValido = validarEntrada();
JOptionPane.showMessageDialog(null, "Número ingresado: " + numeroValido);
}
}
En este ejemplo, la clase ValidadorEntrada contiene un método validarEntrada() que solicita al usuario que ingrese un número entero a través de un cuadro de diálogo. Si el usuario ingresa una entrada no válida (es decir, algo que no se puede convertir a un número entero), se muestra un mensaje de error y se le pide que intente nuevamente. El proceso se repite hasta que el usuario ingresa una entrada válida, momento en el cual el número ingresado se devuelve y se muestra en otro cuadro de diálogo.
En el método main, se llama a validarEntrada() para obtener un número válido y luego se muestra ese número al usuario. Este ejemplo demuestra cómo utilizar JOptionPane para manejar la entrada del usuario y validar que sea un número entero, proporcionando una experiencia de usuario amigable.
Extendiendo el ejemplo
Podemos extender este ejemplo para validar diferentes tipos de entradas, como números decimales o cadenas de texto, utilizando métodos similares y manejando las excepciones correspondientes. Además, podríamos agregar opciones para que el usuario elija qué tipo de entrada desea validar, haciendo el programa más versátil y útil en diferentes contextos.
Por lo que en futuras actividades crearemos una librería de validación de entradas que pueda manejar múltiples tipos de datos y proporcionar retroalimentación adecuada al usuario mediante JOptionPane y clases génericas.