[java] probleme non déterministe
Salut,
j'ai un probleme avec du dessin en java :
voici mon code.
tout d'abord j'ai classe qui produit l'erreur
Code:
1 2 3 4 5 6 7 8
| public class DrawPanel extends JPanel{
/../
public void initBuffer(){
imgbuf = createImage(drawXsize,drawYsize);
gbuf = (Graphics2D)imgbuf.getGraphics();
}
/../
} |
j'ai ensuite dans une autre classe qui appelle la fonction qui produit l'erreur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class TestPanel extends JPanel implements ActionListener{
public TestPanel(){
/../
drawPanel = new DrawPanel();
this.add(drawPanel);
/../
}
public voic actionPerformed(ActionEvent e){
if (e.getActionCommand().equals("init")){
drawPanel.initBuffer();
}
}
} |
Alors l'erreur est un JavaNullPointerException sur la ligne :
Code:
gbuf = (Graphics2D)imgbuf.getGraphics();
car imgbuf vaut null.
maintenant, le problème c'est que l'erreur a pas tout le temps lieu et j'ai pas trouvé les facteurs déterminants.
avant j'avais tout le temps cette erreur si j'initialisais le buffer dans le constructeur de la deuxième classe... je sais pas trop comment marche java en profondeur, mais je pense que c'est une histoire d'instanciation d'objet, et de l'ordre selon laquelle les différents objets constitutifs d'un objet sont instanciés.
Enfin si vous avez des idées, merci. je sais que c'est pas très clair, alors posez moi des questions aussi :)