0

Estoy intentando validad un txtfield:

private void txtMatriculaActionPerformed(java.awt.event.ActionEvent evt) {                                             

    // Busca el codigo que hayamos tecleado en txtCodigo, si devuelve nulo es que no existe
    if (buscarMatricula(txtMatricula.getText()) != null) {
        JOptionPane.showMessageDialog(null, "Ya existe esa matricula: " + txtMatricula.getText());
        // Se devuelve el foco al mismo
        txtMatricula.requestFocus();
    } else {
        // Si no se ha tecleado nada
        if (txtMatricula.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Matrícula vacia");
            txtMatricula.requestFocus();
        } else {

            if (correcto(txtMarca.getText(), patronMatriculaUno)) {
                // Si lo tecleado coincide con el patrón, llevamos el foco al siguiente campo
                txtMarca.requestFocus();
            } else {
                // Si no coindice: mensaje y se devuelve el foco al mismo
                JOptionPane.showMessageDialog(null, "Matrícula incorrecta");
                txtMatricula.requestFocus();
            }
        }
    }
}

Pero cuando ejecuto, me muestra el siguiente error:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at formularios.AppVehiculos.buscarMatricula(AppVehiculos.java:58) at formularios.AppVehiculos.txtMatriculaActionPerformed(AppVehiculos.java:290) at formularios.AppVehiculos.access$000(AppVehiculos.java:15) at formularios.AppVehiculos$1.actionPerformed(AppVehiculos.java:111) at javax.swing.JTextField.fireActionPerformed(JTextField.java:508) at javax.swing.JTextField.postActionEvent(JTextField.java:721) at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:836) at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1668) at javax.swing.JComponent.processKeyBinding(JComponent.java:2882) at javax.swing.JComponent.processKeyBindings(JComponent.java:2929) at javax.swing.JComponent.processKeyEvent(JComponent.java:2845) at java.awt.Component.processEvent(Component.java:6316) at java.awt.Container.processEvent(Container.java:2239) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2297) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:835) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1103) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:974) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:800) at java.awt.Component.dispatchEventImpl(Component.java:4760) at java.awt.Container.dispatchEventImpl(Container.java:2297) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84) at java.awt.EventQueue$4.run(EventQueue.java:733) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:730) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) BUILD SUCCESSFUL (total time: 49 seconds)

Por cierto el validador que uso es:

// Patron matricula uno
Pattern patronMatriculaUno = Pattern.compile("\\d{4}[a-zA-Z]{3}");

Y el metodo que le paso de correcto:

// Comprueba que un valor coindida con el patrón
public boolean correcto(String valor, Pattern patron) {
    boolean correcto;

    Matcher nValor = patron.matcher(valor);
    if (nValor.matches()) {
        correcto = true;
    } else {
        correcto = false;
    }

    return correcto;
}
Manuco Bianco
  • 1,207
  • 8
  • 14
  • 23
Luis Quesada Romero
  • 469
  • 1
  • 4
  • 18

0 Answers0