0

Mi programa me marca un error en el catch. Es un simple JFrame que se encarga de pedir números y evaluar que ninguno de ellos se repita, pero me marca ese error el cual no sé cómo solucionar. Agradecería si me ayudaran. Lo único que busco es un array que almacene los datos que vaya metiendo, pero en un JFrame, y que si meto uno repetido me salte el error de que ya fue registrado y de esa manera poner otro.

    ...         
        panel.setLayout(null);

        JLabel etiqueta = new JLabel("Ingresa un número");
        etiqueta.setBounds(5, 5, 150, 20);
        panel.add(etiqueta);

        JTextField txtNum = new JTextField();
        txtNum.setBounds(5, 30, 150, 20);
        panel.add(txtNum);

        JButton boton = new JButton("Aceptar");
        boton.setBounds(40, 60, 80, 30);
        panel.add(boton);

        JLabel mensaje = new JLabel("");
        mensaje.setBounds(5, 100, 150, 20);
        panel.add(mensaje);

        boton.addActionListener((ActionListener) new ActionListener () {
            @Override
            public void actionPerformed(ActionEvent e) {
                String cedula = "";
                int i = 0, x = 0, cantidadCedulas = cedulas.length;
                boolean salir = false, existe = false;


                while(i < cantidadCedulas && salir == false) {
                    try {
                        cedula = txtNum.getText();
                        if(cedula.isEmpty()) {
                            mensaje.setText("Campo Vacio");
                        }else {
                            x = 0;
                            existe = false;
                            if(i > 0) {
                                while(x < cantidadCedulas && existe == false) {
                                    if(cedulas[x] != null && cedulas[x].equals(cedula)) {
                                        existe = true;
                                        mensaje.setText("El numero ya existe");
                                    }
                                    x++;
                                }
                            }
                            if(existe == false) {
                                cedulas[i] = cedula;
                                i++;
                            }
                        }

                    } catch (NullPointerException e) {
                        salir = true;
                    }
                }
                        }
        });

    }
    public static void main(String[] args) {
        Prueba ventana =  new Prueba();
        ventana.setVisible(true);

    }

}
SuperG280
  • 1,889
  • 7
  • 14
Salvador
  • 3
  • 1
  • 1
    Checa si esta pub. te ayuda https://es.stackoverflow.com/questions/42977/cu%c3%a1l-es-la-soluci%c3%b3n-a-todos-los-errores-nullpointerexception-presentes-pasados – BetaM Feb 20 '20 at 03:39
  • Me temo que no podemos ayudarte, y menos sin saber donde se lanza tu `NPE`. Tendrás que depurar tu código y ver en que punto se encuentra el `null`. Revisa la publicación que te enlazo Aprendiz te ayudara a arreglar los `NPE` ya sea en este caso o en los futuros. – x3k Feb 20 '20 at 07:40
  • 1
    Cuando se produce una excepción, el mensaje del error es fundamental para saber en qué línea y por qué. En tu caso, sabrás qué método está ejecutando sobre qué objeto que tiene valor `null`. Con esa información, tú mismo averiguarías el error en segundos. Te recomiendo tracear la variable `e` que tienes en el `catch`. Si por ti mismo no lo descubres, entonces publicas el error para ayudarnos a darte una solución. – SuperG280 Feb 20 '20 at 07:41

0 Answers0