Eventuel Problème De Setting
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:
Code:
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) |
Le set:
Code:
1 2 3
| //Mettre le Media en emprunte = true
Media unMedia = this.getMedia(unNomMedia/*, "CD"*/);
unMedia.setEmprunte(true); //<========== L'erreur est ICI |
La classe Media
Code:
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 des médias, il s'agit en l'occurence d'un CD
Code:
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;
} |
Les CD sont chargés à partir d'un fichier
Code:
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;");
}
} |
Voici mon fichier CD:
Code:
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 |
:bug: