Validacion de un JOptionPaneShowInputDialog

Iniciado por soser, 19 Octubre 2010, 08:26 AM

0 Miembros y 1 Visitante están viendo este tema.

soser

Bien la duda que tengo es como se puedo validar que un usuario ingrese algo en un inputdialog, se que se usa try y catch, sin embargo, aunque el codigo no me marca error, sigue pasando lo capturado en el inputdialog, aqui mi codigo

   
    String nombre="";
    nombre=JOptionPane.showInputDialog("Ingresa palabra:");
    try{
    JOptionPane.showMessageDialog(null, "Haciendo funciones...");   
    }
    catch(Exception e){JOptionPane.showMessageDialog(null, "No Escribio nada", "Error",  JOptionPane.ERROR_MESSAGE);}
    }


Lo que intento hacer es que me de un nombre para guardar un documento, sin embargo aun sin darle nada crea el documento.
Agradeceria su ayuda

1mpuls0

#1
Lo que tienes que hacer es obtener el texto y compararlo, por ejemplo
Código (java) [Seleccionar]
nombre.equals("")
Código (java) [Seleccionar]
nombre==null

Si sucede alguno de esos casos entonces es un nombre no valido.

También recuerda colocar un try catch en caso de que se cierre la ventana de entrada de datos.

Puedes hacer varias cosas, desde esto:

Código (java) [Seleccionar]

   public ValidacionDatos() {
   
    String nombre="";
    try {
    nombre = JOptionPane.showInputDialog(null, "Ingresa un nombre", "Entrada", 1);
    if(nombre==null||nombre.equals(""))
    return;
    else
    crearArchivo(nombre);
    }
    catch(Exception e) {
    JOptionPane.showMessageDialog(null, "No escribio nada", "Error", 0);
    }
    }


hasta algo un poquito mas complejo.

Código (java) [Seleccionar]

    public ValidacionDatos() {

    try {
    String nombre = (String)JOptionPane.showInputDialog(null,"Ingresa un nombre","Entrada",1);
    if((nombre != null) && (nombre.length() > 0)) {
    crearArchivo(nombre);
    return;
            }
    }
    catch(Exception e) {
    JOptionPane.showMessageDialog(null, "No escribio nada", "Error", 0);
    }
    }



Hasta mas completo si gustas.

Código (java) [Seleccionar]

    public ValidacionDatos() {
   
    String nombre="";
    try {
    nombre = JOptionPane.showInputDialog(null, "Ingresa un nombre", "Entrada", 1);
    if(!esNombreValido(nombre))
    JOptionPane.showMessageDialog(null, "Escriba un nombre correcto para el archivo", "Nombre no valido", 0);
    else
    crearArchivo(nombre);
   
    }
    catch(Exception e) {
    JOptionPane.showMessageDialog(null, "No escribio nada", "Error", 0);
    }
    }
   
    private boolean esNombreValido(String nombre) {
    if(nombre.matches("\\d+\\s+([a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+)"))
    return false;
    else
    return true;
    }



Saludos

abc

soser