Validar un JTextField

Hola, tengo un JTextField y necesito que el usuario introduzca información valida, es decir, que no quede NULO y que reciba solo el texto que yo le indique, me refiero a que solo se pueda escribir texto, o solo números, o 6 números y solo el caractér 'M' Ej (078550M). ¿Cómo lo puedo hacer?. Cabe aclarar que lo necesito en JTextField con el JFormatedTextField ya lo hice y funciona, pero es muy limitado.
Gracias por su ayuda, espero su pronta respuesta.
Respuesta
1
Lo que tenes que hacer es manejar como dos if va y el evento de cuando se presiona el teclado para obtener el text algo asi adentro del evento
int y; ///contador de numeros
String x = mitextfield.getText();
Si x es numero entonces
y++
si y = 7 entonces
 si x.CharAt(7) == M
Cadena aceptada
Sino
  Valor no valido
Sino
Error no ingreso una cadena valida
mitextfield.setText("");
Si no me entendés o no te sale vuelve a preguntarme y lo miramos
Hola, muchas gracias por responder a mi pregunta, pero la verdad no lo entiendo muy bien ¿será qué podrías aplicarlo en un ejemplo o explicarme mejor el código?
Bueno, de nuevo muchas gracias.
Tienes que manejar el así el siguiente código
int y = 1;
    private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {
            String x = jTextField1.getText();
            if (y == 7){
              if (x.matches("[0-9]{6}[m|M]")){
                    System.out.println("Cadena Valida");
              }
              else{
                    System.out.println("Cadena invalida");
              }
            }
            if(y>7){
                    y = 0;
                    jTextField1.setText("");
            }
            y++;
    }
Este código es usando la clase matches mandándole la expresión regular que seria primero agarras el valor del textbox luego con una variable global comparamos como solo vamos a meter 7 datos entonces hacemos que al 7 dato ingresado compare si la cadena es valida o no, si seguimos ingresando valores quiere decir que ya no va a establecer la misma condición entonces borramos la variable y luego mandamos a poner el texto como nada. Ese seria un método.
Este seria otro método
int y = 1;
    @SuppressWarnings("static-access")
    private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {
            String x = jTextField1.getText();
            if(y<7){
                if(!ayu.isNumeric(x)){
                    System.out.println("Caracter Invalido");
                 }
            }
            if(y==7){
                if(x.charAt(6)== 'm' || x.charAt(6)== 'M' ){
                    System.out.println("CadenaValida");
                }
                else{
                    System.out.println("CadenaInvalida");
                }
            }
            if(y>7){
                    System.out.println("Cadena Invalida");
                    y = 0;
                    jTextField1.setText("");
            }
            y++;
    }
    static boolean isNumeric(String cadena){
try {
Integer.parseInt(cadena);
return true;
} catch (NumberFormatException nfe){
return false;
}
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas