Validar JTextField en Java

Códigos

Cuando trabajamos con base de datos o no quedemos queremos que los usuarios introduzcan algún carácter no deseado debemos tomar medias para que se introduzcan los datos correctos en cada formulario y así garantizar la fidelidad de estos datos, para hacer esto existen varias maneras la que te propongo aquí resulta muy practica y efectiva.

Primero debemos crear una clase en nuestro proyecto a la que puedes poner el nombre que desees aquí le llamaremos CheckDataIn.

Debemos hacer algunas importaciones pata que todas funcione correctamente.

La clase quedaría así:  

import java.awt.Color;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class CheckDataIn {
//solo numeros  
 public void OnlyNumIn (JTextField Num){
     Num.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e){
    char c =e.getKeyChar();
   if(!Character.isDigit(c)){
        Num.setBackground(Color.red);
        e.consume();
      JOptionPane.showMessageDialog(null, "No se permite: "+"("+ c +")"+" ,en este campo.", "[!] Notificación " , JOptionPane.WARNING_MESSAGE);
       Num.setBackground(Color.WHITE);
    }
}
     });
 }  
//solo letras 
   public void OnlyLettersIn(JTextField caracter){
     caracter.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e){
    char c =e.getKeyChar();
   int k=(int)e.getKeyChar();
    if(Character.isDigit(c)){
        caracter.setBackground(Color.red);
        e.consume();
        JOptionPane.showMessageDialog(null, "No se permite: "+"("+ c +")"+" ,en este campo.", "[!] Notificación " , JOptionPane.WARNING_MESSAGE);
         caracter.setBackground(Color.WHITE);
    }
}
     });
  } 

También podemos limitar el numero de caracteres que se puede introducir en cada formulario, esto lo hacemos agregando el siguiente bloque de código.

public void limitCaractIn (JTextField Num, int limit ){
     Num.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e){
    char c =e.getKeyChar();
    int lmt=Num.getText().length();
    if( lmt>=limit){
        Num.setBackground(Color.red);
        e.consume();
        JOptionPane.showMessageDialog(null, "Ha exedido el limite de caracteres permitidos para este campo ", "[!] Notificación " , JOptionPane.WARNING_MESSAGE);
     Num.setBackground(Color.white);
    }
}
     
     });
 }

Después que la clase este creada, creamos un objeto de la clase CheckDataIn:

public class nombreDetuJframe extends javax.swing.JFrame {

CheckDataIn chk = new CheckDataIn();

}

Par que todo funcione agregamos los campos que queremos validar:

public nombreDetuJframe () {

//solo números 
chk.OnlyNumIn(nombreDelJText);
//limitar cantidad de caracteres 
chk.limitCaractIn(subj_Hnum, 8);
//solo letras
chk.OnlyLettersIn(subj_name);

}

De esta forma podremos validar los campos que deseamos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *