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 :
Dans le construteur Jeu() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 private Image backbuffer = null; private Graphics backg = null;
Dans afficheEcranTitre(backg), je dessine dans backg.
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);
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
Partager