Bonjour,

Je debute en JAVA et me voila confronté un probleme, j'ai créé plusieurs tableaux dans une classe et une méthode qui permet de copier un de ces tableaux dans une variable.
Ensuite dans mon Canvas j'appelle ma méthode mais cela ne marche pas j'ai une erreur du type :

Installing suite from: http://127.0.0.1:64394/Tetris.jad
[WARN] [rms ] javacall_file_open: _wopen failed for: C:\Users\Kevin\javame-sdk\3.0\work\0\appdb\_delete_notify.dat

Uncaught exception: java.lang.NullPointerException: 0
at TetrisPiece.cree_piece(TetrisPiece.java:64)
at TetrisCanvas.run(TetrisCanvas.java:45)
at java.lang.Thread.run(), bci=11
javacall_lifecycle_state_changed() lifecycle: event is JAVACALL_LIFECYCLE_MIDLET_SHUTDOWNstatus is JAVACALL_OK





Voici le code de ma classe :
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
 
public class TetrisPiece {
 
//TetrisPiece courante et angle
public int[][] piecec;
public int angle = 0;
 
// liste des pièces
private int[][] Piece1 = { {0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0},
              {0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0},
              {0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0},
              {0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0} };
 
private int[][] Piece2 = { {0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0},
              {0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0},
              {0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0},
              {0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0} };
 
private int[][] Piece3 = { {0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0},
              {3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0},
              {0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0},
              {3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0} };
 
private int[][] Piece4 = { {0,0,4,0,0,4,4,0,0,4,0,0,0,0,0,0},
              {0,0,0,0,0,4,4,0,0,0,4,4,0,0,0,0},
              {0,0,4,0,0,4,4,0,0,4,0,0,0,0,0,0},
              {0,0,0,0,0,4,4,0,0,0,4,4,0,0,0,0} };
 
private int[][] Piece5 = { {0,5,0,0,0,5,5,0,0,5,0,0,0,0,0,0},
              {0,0,0,0,0,0,5,0,0,5,5,5,0,0,0,0},
              {0,0,0,5,0,0,5,5,0,0,0,5,0,0,0,0},
              {0,5,5,5,0,0,5,0,0,0,0,0,0,0,0,0} };
 
private int[][] Piece6 = { {0,0,6,0,0,0,6,0,0,6,6,0,0,0,0,0},
              {0,0,0,0,0,6,6,6,0,0,0,6,0,0,0,0},
              {0,6,6,0,0,6,0,0,0,6,0,0,0,0,0,0},
              {0,0,0,0,0,6,0,0,0,6,6,6,0,0,0,0} };
 
private int[][] Piece7 = { {0,7,0,0,0,7,0,0,0,7,7,0,0,0,0,0},
              {0,0,0,0,0,0,0,7,0,7,7,7,0,0,0,0},
              {0,7,7,0,0,0,7,0,0,0,7,0,0,0,0,0},
              {0,0,0,0,0,7,7,7,0,7,0,0,0,0,0,0} };
 
 
 
    private int RandomNumber ()  // Génération d'un aléatoire pour choisir une pièce entre 1 et 7
    {
        Random rand = new Random();
        return ((rand.nextInt(7))+1 );
    }
 
 
    public void cree_piece()
    {
        int rand = RandomNumber ();
        switch (rand) {
            case 1 :for (int i=0;i<4;i++) { for (int j=0;j<16;j++) { piecec [i][j]=Piece1 [i][j]; }};
                    break;
            case 2 :for (int i=0;i<4;i++) { for (int j=0;j<16;j++) { piecec [i][j]=Piece2 [i][j]; }};
                    break;
            case 3 :for (int i=0;i<4;i++) { for (int j=0;j<16;j++) { piecec [i][j]=Piece3 [i][j]; }};
                    break;
            case 4 :for (int i=0;i<4;i++) { for (int j=0;j<16;j++) { piecec [i][j]=Piece4 [i][j]; }};
                    break;
            case 5 :for (int i=0;i<4;i++) { for (int j=0;j<16;j++) { piecec [i][j]=Piece5 [i][j]; }};
                    break;
            case 6 :for (int i=0;i<4;i++) { for (int j=0;j<16;j++) { piecec [i][j]=Piece6 [i][j]; }};
                    break;
            case 7 :for (int i=0;i<4;i++) { for (int j=0;j<16;j++) { piecec [i][j]=Piece7 [i][j]; }};
                    break;
            default:
                for (int i=0;i<4;i++) { for (int j=0;j<16;j++) { piecec [i][j]=Piece1 [i][j]; }};
            break;
        }
    }
 
 
}

et voici le bout de code de mon canvas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
piece.cree_piece();  // c'est la ou ca pointe !!!
 
                for (int i=0;i<1;i++) {
                    for (int j=0;j<16;j++) {
                        if( piece.piecec [i][j] == 1){
                           graphics.fillRect(0, 0, 50, 50);
                        }
                    }
                }