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
Lo que tienes que hacer es obtener el texto y compararlo, por ejemplo
nombre.equals("")
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:
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.
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.
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
:o, Gracias me sirvio de mucho tu ayuda