Salut,
Alors j'ai un erreur bizarre. Aparement, je ne peux pas setter l'attibut emprunte d'une classe Media. Je ne comprend pas pourquoi. Voilà mon code, si vous voyez quelque chose de suspect... !
Merci d'avance.
L'erreur:
Le set:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at Database.chargeLesDonneesEmprunt(Database.java:427) at MediaFrame.actionPerformed(MediaFrame.java:197) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
La classe Media
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //Mettre le Media en emprunte = true Media unMedia = this.getMedia(unNomMedia/*, "CD"*/); unMedia.setEmprunte(true); //<========== L'erreur est ICI
Les CD sont des médias, il s'agit en l'occurence d'un CD
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public class Media { protected String nom; protected String auteur; protected String producteur; protected String genre; protected int note; protected String commentaire; protected boolean emprunte; /** * Constructeur de Media * @param nom * @param auteur * @param producteur * @param genre * @param note */ public Media(String nom, String auteur, String producteur, String genre, int note) { this.nom = nom; this.auteur = auteur; this.producteur = producteur; this.genre = genre; this.note = note; this.commentaire = ""; this.emprunte = false; } public Media(String nom, String auteur, String producteur, String genre, int note, String commentaire, boolean emprunte) { this.nom = nom; this.auteur = auteur; this.producteur = producteur; this.genre = genre; this.note = note; this.commentaire = commentaire; this.emprunte = emprunte; } public void setEmprunte(boolean emprunte) { this.emprunte = emprunte; }
Les CD sont chargés à partir d'un fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public class CD extends Media { private int nbDePistes; private String duree; /** * Créé un CD. */ public CD(String leTitre, String leGroupe, String producteur, String genre, String laDuree, int nbPistes, int note) { super(leTitre, leGroupe, producteur, genre, note); this.nbDePistes = nbPistes; this.duree = laDuree; } /** * Initialise le CD. */ public CD(String leTitre, String leGroupe, String producteur, String genre, String laDuree, int nbPistes, int note, String commentaire, boolean emprunte) { super(leTitre, leGroupe, producteur, genre, note, commentaire, emprunte); this.nbDePistes = nbPistes; this.duree = laDuree; }
Voici mon fichier CD:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62 public void chargeLesDonneesCD(String nomFichier) { try { FileReader in = new FileReader(nomFichier); // passe par un buffer pour simplifier la lecture BufferedReader buffer = new BufferedReader(in); // lecture première ligne String unNom = buffer.readLine() ; //terme String unAuteur; String unProducteur; String unGenre; int uneNote; String unCommentaire; boolean emprunte; int unNbPistes; String uneDuree; //Tant qu'il y a des lignes à lire while (unNom != null) { unAuteur = buffer.readLine(); unProducteur = buffer.readLine(); unGenre = buffer.readLine(); String strNote = buffer.readLine(); uneNote = Integer.parseInt(strNote); unCommentaire = buffer.readLine(); String strNbPistes = buffer.readLine(); unNbPistes = Integer.parseInt(strNbPistes); uneDuree = buffer.readLine(); String strEmp = buffer.readLine(); if (strEmp.equals("true")) { emprunte = true; } else if (strEmp.equals("false")) { emprunte = false; } else { emprunte = false; } System.out.println("Chargé : " + unNom + " " + unAuteur + " " + unProducteur + " " + unGenre + " " + uneNote + " " + unCommentaire + " " + strEmp + " " + unNbPistes + " " + uneDuree); CD unCD = new CD (unNom, unAuteur, unProducteur, unGenre, uneDuree, unNbPistes, uneNote, unCommentaire, emprunte); this.lesCD.add(unCD); //lire le prochain nom unNom = buffer.readLine(); } // fermeture fichier in.close(); } catch(IOException e) { System.out.println("Erreur : Fichier CD - Problème de lecture fichier - Le fichier est inexistant;"); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 California Mr Bungle John Zorn Ambiance Psychédélique Trash 17 Déjanté 10 44:13 false Aenima Tool X Rock Progressif 18 Pas plus étrange 9 68:35 false Dernières Balises (Avant Mutation) Hubert Félix Thiéfaine Sterne Variété 18 10 45:32 false![]()
Partager