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 : 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)
Le set:
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
La classe Media
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 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
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 : 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;");
    	}
    }
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
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