Salut,

j'ai un probleme avec du dessin en java :

voici mon code.


tout d'abord j'ai classe qui produit l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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