Bonjour à tous,

Je travaille sur une application Swing où j'ai créé une fenêtre sur laquelle on peut remplir les champs nom, prénom, on choix le fichier photo ainsi que le semestre souhaité; on clique le bouton valider et une autre fenêtre s'ouvre avec les infos de la première fenêtre en plus d'autres champs pour les moyennes de chaque matière, un bouton pour enregistrer toutes ces infos dans un fichier d'objet .dat.

Mon souci est qu'en cliquant sur le bouton enregistrer dans la seconde fenêtre, il y a un message d'erreur:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Introduction.BulletinNotes.enregistrementBtnActionPerformed(BulletinNotes.java:333)
at Introduction.BulletinNotes.access$200(BulletinNotes.java:19)
at Introduction.BulletinNotes$3.actionPerformed(BulletinNotes.java:227)

Voici le code:
Pour la première fenêtre:
Le bouton valider:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
    private void validerBtnActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        String nom = nomAsaisir.getText();
        String prenom = prenomAsaisir.getText();
        double[] moyenne = new double[listeMatieres.length];
        for(int i = 0; i < moyenne.length; i++)
            moyenne[i] = 0;
        Etudiant eleve = new Etudiant(nom, prenom, urlPhoto, listeMatieres, periode, moyenne);
        BulletinNotes bn = new BulletinNotes(eleve);
    }
Le constructeur bulletinNotes fait appel à la seconde fenêtre.
Pour la seconde fenêtre:
Le bouton enregistrer:
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 
/*19*/public class BulletinNotes extends javax.swing.JFrame {
    private Etudiant etudiant;
 
 
    /** Creates new form BulletinNotes */
    public BulletinNotes(Etudiant tmp) {
        setVisible(true);
        initComponents();
        this.setBounds(100, 100, 450, 500);
        etudiant = tmp;
 
        nomEtudiant.setText(etudiant.getNom());
        prenomEtudiant.setText(etudiant.getPrenom());
        semestre.setText(etudiant.getSemestre());
        String[] listeMatieres = etudiant.getMatieres();
 
        matiereLue1.setText(listeMatieres[0]);
        matiereLue2.setText(listeMatieres[1]);
        matiereLue3.setText(listeMatieres[2]);
        matiereLue4.setText(listeMatieres[3]);
        matiereLue5.setText(listeMatieres[4]);
 
        double[] listeMoyenne = etudiant.getMoyenne();
        moyenne1.setText(Double.toString(listeMoyenne[0]));
        moyenne2.setText(Double.toString(listeMoyenne[1]));
        moyenne3.setText(Double.toString(listeMoyenne[2]));
        moyenne4.setText(Double.toString(listeMoyenne[3]));
        moyenne5.setText(Double.toString(listeMoyenne[4]));
 
        ImageIcon iconPhoto = new ImageIcon(etudiant.getPhoto());
        photoEtudiant.setIcon(iconPhoto);
    }
 
 
    private void calculerBtnActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        String moyenneTxt1 = moyenne1.getText();
        float m1 = Float.parseFloat(moyenneTxt1);
        etudiant.setMoyenne(m1, 0);
 
        String moyenneTxt2 = moyenne2.getText();
        float m2 = Float.parseFloat(moyenneTxt2);
        etudiant.setMoyenne(m2, 1);
 
        String moyenneTxt3 = moyenne3.getText();
        float m3 = Float.parseFloat(moyenneTxt3);
        etudiant.setMoyenne(m3, 2);
 
        String moyenneTxt4 = moyenne4.getText();
        float m4 = Float.parseFloat(moyenneTxt4);
        etudiant.setMoyenne(m4, 3);
 
        String moyenneTxt5 = moyenne5.getText();
        float m5 = Float.parseFloat(moyenneTxt5);
        etudiant.setMoyenne(m5, 4);
 
        float resultat = (m1 + m2 + m3 + m4 + m5) / 5;
        moyenneGenerale.setText(Float.toString(resultat));
    }                                           
 
    private void fermerBtnActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        this.dispose();
    }                                         
 
    private void enregistrementBtnActionPerformed(java.awt.event.ActionEvent evt) {                                                  
        // TODO add your handling code here:
        Etudiant e = new Etudiant(etudiant.getNom(), etudiant.getPrenom(), 
                etudiant.getPhoto(), etudiant.getMatieres(), etudiant.getSemestre(), etudiant.getMoyenne());
        Cursus promo = new Cursus();
        FichierEtudiant f = new FichierEtudiant();
        if(f.ouvrir("L")) {
            promo = f.lire();
            f.fermer();
        }        
  /*333*/     promo.ajouteUnEtudiant(etudiant.getNom(), etudiant.getPrenom(), etudiant.getPhoto(),
                  etudiant.getMatieres(), etudiant.getSemestre(), etudiant.getMoyenne());
        f.ouvrir("W");
        f.ecrire(promo);
        f.fermer();
    }                                                                 
}
Merci pour votre aide.