Bonjour,
J'aimerais solliciter votre aide concernant mon problème.
Voici l'erreur lors de l'exécution :
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
 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at Echiquier.paintComponent(Echiquier.java:67)
        at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074)
        at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5255)
        at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedFPScales(RepaintManager.java:1707)
        at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1616)
        at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1556)
        at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
        at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5203)
        at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5013)
        at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:865)
        at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
        at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
        at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
        at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1890)
        at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Et voici le code du programme concerné :
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
84
85
86
87
88
 
    public void paintComponent(Graphics g){
         int taille1=50;//taille de la case
         g.setColor(Color.BLACK);
         boolean bool = false;
         for (int i = 0; i < 8; i ++) {//ligne 8 cases
              for (int y = 0; y < 8; y ++) {//colonne 8 cases
                if(bool){
                g.setColor(Color.WHITE);
                g.fillRect((y+1)*taille1 , (i+1)*taille1, taille1, taille1);//(ligne,colonne,longueur,largeur)
              }else{
                g.setColor(Color.LIGHT_GRAY);
                g.fillRect((y+1)*taille1 , (i+1)*taille1, taille1, taille1);
              }
              bool =! bool;
 
              //INSERTION IMAGE SELON LA POSITION DES PIECES QUI SONT JOUER
              if(this.plateau[i][y].getPiece().getNom()== "Pion"){
                if(this.plateau[i][y].getPiece().getCouleur()=="Blanc"){
                  ImageIcon icon = new ImageIcon("img/PB.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }else{
                  ImageIcon icon = new ImageIcon("img/PN.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }
              }
              if(this.plateau[i][y].getPiece().getNom()== "Tour"){
                if(this.plateau[i][y].getPiece().getCouleur()=="Blanc"){
                  ImageIcon icon = new ImageIcon("img/TB.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }else{
                  ImageIcon icon = new ImageIcon("img/TN.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }
              }
              if(this.plateau[i][y].getPiece().getNom()== "Cavalier"){
                if(this.plateau[i][y].getPiece().getCouleur()=="Blanc"){
                  ImageIcon icon = new ImageIcon("img/CB.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }else{
                  ImageIcon icon = new ImageIcon("img/CN.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }
              }
              if(this.plateau[i][y].getPiece().getNom()== "Fou"){
                if(this.plateau[i][y].getPiece().getCouleur()=="Blanc"){
                  ImageIcon icon = new ImageIcon("img/FB.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }else{
                  ImageIcon icon = new ImageIcon("img/FN.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }
              }
              if(this.plateau[i][y].getPiece().getNom()== "Reine"){
                if(this.plateau[i][y].getPiece().getCouleur()=="Blanc"){
                  ImageIcon icon = new ImageIcon("img/RRB.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }else{
                  ImageIcon icon = new ImageIcon("img/RRN.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }
              }
              if(this.plateau[i][y].getPiece().getNom()== "Roi"){
                if(this.plateau[i][y].getPiece().getCouleur()=="Blanc"){
                  ImageIcon icon = new ImageIcon("img/RB.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }else{
                  ImageIcon icon = new ImageIcon("img/RN.png");
                  icon.paintIcon(null, g, (y+1)*taille1, (i+1)*taille1);
                }
              }
 
            }//Fin boucle y
            bool =! bool;
          }//Fin boucle i
          g.setColor(Color.BLACK);
          for(int c = 0; c < 8 ; c ++){// CHIFFRE
            String le="";
            le+=c+1;
            g.drawString(le,40, (c+2)*taille1);
          }
 
          for(int c = 0; c < 8 ; c ++){// LETTRE
            char le = lettre[c];
            g.drawString(""+le,(c+1)*taille1, 40);
          }
        }
    //
Quelques informations complémentaires:
-getNom() retourne un String .
-getPiece() retourne l'objet Piece.
-Toutes les images sont dans le répertoire "img".
-Lors de la compilation aucun problème n'a été détecté.
Je voudrais remercier toutes les réponses qui pourraient m'aider à résoudre ce problème.