Excepcion java.lang.NullPointerException al intentar guardar datos en un HashMap con interfaces
Publicado por Ivan (6 intervenciones) el 20/03/2019 11:27:19
Buenos días,
Estoy con un ejercicio de clase que nos pide dar de alta en una interface un libro con sus parametros en una colección hashmap en la cual va guardado en un fichero. Al iniciar el programa debe ejecutar el metodo cargarcolección lo que es leer la colección que está metido en el fichero. Al realizar el alta y dar a aceptar para intentar que se guarde al hashmap la información me da una excepcion de java.lang.NullPointerException: at biblioteca.BibliotecaPrincipal.btnAceptarAltaActionPerformed(BibliotecaPrincipal.java:642) at biblioteca.BibliotecaPrincipal.access$500(BibliotecaPrincipal.java:21) at biblioteca.BibliotecaPrincipal$6.actionPerformed(BibliotecaPrincipal.java:259)
Haber si encontrais el fallo por que me estoy volviendo loco...
Metodo cargar colección:
Clase principal con la creacion del hashmap y fichero:
Botón aceptar :
//Botón aceptar de dar de alta libro, que cuando se pulsa se añade la información al hashmap
Estoy con un ejercicio de clase que nos pide dar de alta en una interface un libro con sus parametros en una colección hashmap en la cual va guardado en un fichero. Al iniciar el programa debe ejecutar el metodo cargarcolección lo que es leer la colección que está metido en el fichero. Al realizar el alta y dar a aceptar para intentar que se guarde al hashmap la información me da una excepcion de java.lang.NullPointerException: at biblioteca.BibliotecaPrincipal.btnAceptarAltaActionPerformed(BibliotecaPrincipal.java:642) at biblioteca.BibliotecaPrincipal.access$500(BibliotecaPrincipal.java:21) at biblioteca.BibliotecaPrincipal$6.actionPerformed(BibliotecaPrincipal.java:259)
Haber si encontrais el fallo por que me estoy volviendo loco...
Metodo cargar colección:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public static HashMap<String, Libros> CargarColeccion(File fichero) {
HashMap <String, Libros> biblio = null;
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream(fichero);
ois = new ObjectInputStream(fis);
biblio = (HashMap<String, Libros>) ois.readObject();
}catch (ClassNotFoundException | FileNotFoundException e) { // Contemplamos excepción si no se encuentran la clase o el fichero.
} catch (IOException e) { // Contemplamos excepción si hay error en la entrada o salida de datos.
} catch (Exception e) { // Contemplamos excepción genérica.
}finally {
if (ois != null) {
try {
ois.close();
fis.close();
} catch (IOException ex) {
System.out.println("Ha ocurrido una IOException");
}
}
}
return biblio;
}
Clase principal con la creacion del hashmap y fichero:
1
2
3
static File fichero = new File("libros.dat");
//Creamos el HashMap
HashMap<String, Libros> biblio = Metodos.CargarColeccion(fichero);
Botón aceptar :
//Botón aceptar de dar de alta libro, que cuando se pulsa se añade la información al hashmap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
private void btnAceptarAltaActionPerformed(java.awt.event.ActionEvent evt) {
//guardamos los datos
if (this.textCodigo == null
|| this.textTitulo == null
|| this.textAutor == null
|| this.fechaDia == null
|| this.fechaMes == null
|| this.FechaAno == null
|| (String) this.Lista.getSelectedItem() == "..."
|| (this.radioSi.isSelected() == false && this.radioNo.isSelected() == false)) {
JOptionPane.showMessageDialog(this.ventanaAlta, "Debe rellenar todos los campos.", "Alta de libro fallida", JOptionPane.ERROR_MESSAGE);
}
else{
//tranformación de text a integer
int fechaDia = Integer.parseInt(this.fechaDia.getText());
int fechaMes = Integer.parseInt(this.fechaMes.getText());
int fechaAno = Integer.parseInt(this.FechaAno.getText());
String codigo = this.textCodigo.getText();
String titulo = this.textTitulo.getText();
String autor = this.textAutor.getText();
Calendar fecha = new GregorianCalendar(fechaAno, fechaMes, fechaDia);
String paginas = (String) this.Lista.getSelectedItem();
boolean libroPremiado = this.radioSi.isSelected();
Libros libro = new Libros(codigo,titulo, autor, fecha, paginas, libroPremiado);
System.out.println(fecha);
System.out.println(libro.toString());
biblio.put(codigo, libro);
this.textCodigo.setText(null);
this.textTitulo.setText(null);
this.textAutor.setText(null);
this.fechaDia.setText(null);
this.fechaMes.setText(null);
this.FechaAno.setText(null);
this.Lista.setSelectedItem(0);
this.grupo_premiado.clearSelection();
this.ventanaAlta.setVisible(false);
this.Principal.setVisible(true);
}
}
Valora esta pregunta


0