Validar formularios en Java

Básicamente existen dos formas de validar los datos ingresados por el usuario en un formulario:

  • Una vez que ha ingresado todos los datos, donde lo ideal es hacerlo con expresiones regulares
  • Mientras se van ingresando los datos, manejando los eventos del teclado mediante la interfaz KeyAdapter y el método keyReleased.

Respecto a esta última opción, de la mano de Casidiablo nos llega parte del siguiente código:

  • En principio, debemos contar en nuestro código con una caja de texto:

textIngreso = new javax.swing.JTextField();

  • Mediante el método addKeyListener le agregaremos un handler para el evento keyReleased:

textIngreso.addKeyListener(new java.awt.event.KeyAdapter() {
       public void keyReleased(java.awt.event.KeyEvent evt) {
            textIngresoKeyReleased(evt)
       }
   });

  • Nuestro método textIngresoKeyReleased será el encargado de validar el caracter ingresado y de emitir un beep al ingreso de un caracter no válido.

private void textIngresoKeyReleased(java.awt.event.KeyEvent evt) {                                       
    Character caracter = new Character(evt.getKeyChar());
    if (!esValido(caracter)) {
        String texto="";
        for (int i=0; i<textIngreso.getText().length();i++) {
            if (esValido(new Character(textIngreso.getText().charAt(i) )) )
                    texto += textIngreso.getText().charAt(i);
        }
        textIngreso.setText(texto);
        getToolkit().beep();
    }
}

  • Finalmente, definimos el método esValido, invocado desde el método anterior

private boolean esValido(Character caracter) {
    char c =caracter.charValue();
    if ( !(Character.isLetter(c)) || c==' ' || c==8 ) {  /* aceptamos el ingreso de espacios o el backspace*/
        return false;
    } else {
        return true;
    }
}

Vía: Casidiablo

2 comentario en este artículoDeje el suyo
  1. quisiera un codigo que me permita validar datos en java (netbeans 5.0) gracias

  2. //saludos quisiera q me ayudes con este codigo estube tratando de hacer que en el textField txtCodigo no ingresen letras pero no funciona si `pudieras ayudarme seria perfecto aqui te pongo el codigo. verdad aparte de este codigo existe la clase Libro y la clase ArrayLibros

    package packForm;

    import javax.swing.JOptionPane;

    public class frmListaLibro extends javax.swing.JFrame {

    ArregloLibros libros=new ArregloLibros();

    /** Creates new form frmListaLibro */
    public frmListaLibro() {
    initComponents();
    // libros.cargar();
    }

    @SuppressWarnings(“unchecked”)
    //
    private void initComponents() {

    lblCodigo = new javax.swing.JLabel();
    lblNombre = new javax.swing.JLabel();
    lblPrecio = new javax.swing.JLabel();
    lblCantidad = new javax.swing.JLabel();
    lblRuta = new javax.swing.JLabel();
    txtCodigo = new javax.swing.JTextField();
    txtNombre = new javax.swing.JTextField();
    txtPrecio = new javax.swing.JTextField();
    txtCantidad = new javax.swing.JTextField();
    txtRuta = new javax.swing.JTextField();
    btnAtras = new javax.swing.JButton();
    btnAtrasT = new javax.swing.JButton();
    btnAdelanteT = new javax.swing.JButton();
    btnAdelante = new javax.swing.JButton();
    btnLimpiar = new javax.swing.JButton();
    btnAgregar = new javax.swing.JButton();
    btnVer = new javax.swing.JButton();
    btnCargar = new javax.swing.JButton();
    rbtnPuntoyComa = new javax.swing.JRadioButton();
    rbtnPosicion = new javax.swing.JRadioButton();
    jScrollPane3 = new javax.swing.JScrollPane();
    txtSalida = new javax.swing.JTextArea();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    lblCodigo.setText(“Codigo:”);

    lblNombre.setText(“Nombre:”);

    lblPrecio.setText(“Precio:”);

    lblCantidad.setText(“Cantidad:”);

    lblRuta.setText(“Ruta:”);

    txtCodigo.addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyReleased(java.awt.event.KeyEvent evt) {
    txtCodigoKeyReleased(evt);
    }
    });

    btnAtras.setText(“|<");

    btnAtrasT.setText("<>”);

    btnAdelante.setText(“>|”);

    btnLimpiar.setText(“Limpiar”);
    btnLimpiar.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    btnLimpiarActionPerformed(evt);
    }
    });

    btnAgregar.setText(“Agregar”);
    btnAgregar.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    btnAgregarActionPerformed(evt);
    }
    });

    btnVer.setText(“Ver”);

    btnCargar.setText(“Cargar”);

    rbtnPuntoyComa.setText(“Con Punto y Coma”);

    rbtnPosicion.setText(“Con Posiciones”);

    txtSalida.setColumns(20);
    txtSalida.setEditable(false);
    txtSalida.setRows(5);
    jScrollPane3.setViewportView(txtSalida);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGap(36, 36, 36)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addComponent(lblCantidad)
    .addGap(18, 18, 18)
    .addComponent(txtCantidad, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(lblCodigo)
    .addComponent(lblPrecio)
    .addComponent(lblNombre))
    .addGap(23, 23, 23)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
    .addComponent(txtPrecio)
    .addComponent(txtCodigo)
    .addComponent(txtNombre, javax.swing.GroupLayout.DEFAULT_SIZE, 66, Short.MAX_VALUE))))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 128, Short.MAX_VALUE))
    .addGroup(layout.createSequentialGroup()
    .addGap(23, 23, 23)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addComponent(btnAtras)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(btnAtrasT)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(btnAdelanteT)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(btnAdelante))
    .addGroup(layout.createSequentialGroup()
    .addComponent(lblRuta)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(txtRuta, javax.swing.GroupLayout.DEFAULT_SIZE, 240, Short.MAX_VALUE)))))
    .addGap(19, 19, 19)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addGroup(layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
    .addComponent(btnLimpiar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addComponent(btnAgregar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addComponent(btnVer, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    .addComponent(btnCargar))
    .addGap(26, 26, 26))
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(rbtnPosicion)
    .addComponent(rbtnPuntoyComa))))
    .addGroup(layout.createSequentialGroup()
    .addContainerGap()
    .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 418, Short.MAX_VALUE)))
    .addContainerGap())
    );
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addContainerGap()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(lblCodigo)
    .addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(btnLimpiar))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(txtNombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(btnAgregar)
    .addComponent(lblNombre))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(txtPrecio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(btnVer)
    .addComponent(lblPrecio))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(lblCantidad)
    .addComponent(txtCantidad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGap(12, 12, 12)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(btnAtras, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(btnAtrasT, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(btnAdelanteT, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(btnAdelante)))
    .addGroup(layout.createSequentialGroup()
    .addComponent(rbtnPuntoyComa)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(rbtnPosicion)))
    .addGap(18, 18, 18)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(lblRuta)
    .addComponent(txtRuta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(btnCargar))
    .addGap(26, 26, 26)
    .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 157, Short.MAX_VALUE)
    .addContainerGap())
    );

    pack();
    }//

    private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    int codigoLibro = getCodigo();
    int cantidad = getCantidad();
    String nombre = getNombre();
    double precio = getPrecio();

    Libros l=libros.buscar(codigoLibro);

    if(l==null){
    Libros x = new Libros(codigoLibro,cantidad,nombre,precio);
    libros.agregarLibro(x);
    mensaje(“Se agregó correctamente los Libros”,”Mensaje de Confirmacion”);
    // libros.grabar();
    listarLibro();
    }
    else
    mensaje(“EL código ya existe …”,”Mensaje de Error”);

    }

    private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    txtCodigo.setText(“”);
    txtNombre.setText(“”);
    txtCantidad.setText(“”);
    txtPrecio.setText(“”);
    }

    private void txtCodigoKeyReleased(java.awt.event.KeyEvent evt) {

    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new frmListaLibro().setVisible(true);
    }
    });
    }

    // Variables declaration – do not modify
    private javax.swing.JButton btnAdelante;
    private javax.swing.JButton btnAdelanteT;
    private javax.swing.JButton btnAgregar;
    private javax.swing.JButton btnAtras;
    private javax.swing.JButton btnAtrasT;
    private javax.swing.JButton btnCargar;
    private javax.swing.JButton btnLimpiar;
    private javax.swing.JButton btnVer;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JLabel lblCantidad;
    private javax.swing.JLabel lblCodigo;
    private javax.swing.JLabel lblNombre;
    private javax.swing.JLabel lblPrecio;
    private javax.swing.JLabel lblRuta;
    private javax.swing.JRadioButton rbtnPosicion;
    private javax.swing.JRadioButton rbtnPuntoyComa;
    private javax.swing.JTextField txtCantidad;
    private javax.swing.JTextField txtCodigo;
    private javax.swing.JTextField txtNombre;
    private javax.swing.JTextField txtPrecio;
    private javax.swing.JTextField txtRuta;
    private javax.swing.JTextArea txtSalida;
    // End of variables declaration

    int getCodigo() {
    return Integer.parseInt(txtCodigo.getText()); }

    int getCantidad() {
    return Integer.parseInt(txtCantidad.getText());}

    String getNombre(){
    return txtNombre.getText();}

    double getPrecio(){
    return Double.parseDouble(txtPrecio.getText());}

    private void mensaje(String texto, String tipo) {
    JOptionPane.showMessageDialog(null,texto,tipo,JOptionPane.INFORMATION_MESSAGE);}

    private void listarLibro() {
    imprimirconsultalibros();
    if(libros.tamañoLibro()>0){
    imprimirconsultalibros(“”);
    imprimirconsultalibros(” Código Nombre\t Cantidad \t Precio “);
    txtSalida.append(” —————————————————————————-”);
    imprimirconsultalibros(“”);
    for(int i=0;i<libros.tamañoLibro();i++){
    Libros l=libros.obtener(i);
    imprimirconsultalibros(""+l.getCodigo()+"\t"+ l.getNombre()+"\t"+l.getCantidad()+"\t"+l.getPrecio());
    }
    imprimirconsultalibros(" ———————————————————————–");
    imprimirconsultalibros(" N° de Libros: "+libros.tamañoLibro());
    }
    else
    mensaje("No exiten Libros …","Mensaje de Error");

    }

    private void imprimirconsultalibros(String s) {
    txtSalida.append(""+s+"\n");}

    private void imprimirconsultalibros() {
    txtSalida.setText("");}

    }

Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2012

WordPress