J'avais posté à propos d'un problème de scrolling, ça été résolu avec le double buffering. c'était ici :
http://www.developpez.net/forums/viewtopic.php?t=218987

Mais depuis l'appel à update(g) provoque une NullPointerException, qqs secondes après le démarrage du programme (qui affiche juste un écran).

J'avais cette erreur qd je faisais repaint() pour rien, mais même en les enlevant, ça fait l'erreur (qui ne stoppe pas le prog).

J'ai fait comme ça :

Dans la classe Jeu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
private Image backbuffer = null;
private Graphics backg = null;
Dans le construteur Jeu() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
backbuffer = createImage(largeur, hauteur);
backg = backbuffer.getGraphics();
backg.setColor(Color.black);
 
afficheEcranTitre(backg);
Dans afficheEcranTitre(backg), je dessine dans backg.
Et à la fin je fais un repaint();

Et c'est la-dedans que l'exception apparaît :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public void paint(Graphics g) {
	update(g);          // bug après qqs secondes
}
 
public void update(Graphics g) {
	g.drawImage(backbuffer, 0, 0, this);
}

L'exception complète :

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
 
java.lang.NullPointerException
	at sun.java2d.pipe.DrawImage.copyImage(Unknown Source)
	at sun.java2d.pipe.DrawImage.copyImage(Unknown Source)
	at sun.java2d.SunGraphics2D.drawImage(Unknown Source)
	at sun.java2d.SunGraphics2D.drawImage(Unknown Source)
	at Jeu.update(Jeu.java:146)
	at Jeu.paint(Jeu.java:139)
	at sun.awt.RepaintArea.paint(Unknown Source)
	at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

merci