J'écris un jeu simple. J'ai 3 classes la première: la balle qui s'occupe de tout ce qui y est référencé, la seconde qui fait partie d'une série de "balles" et la dernière est windows, celle qui contient le fil principal. Window.paint appelle game.draw afin de recevoir les graphismes de la scène de jeu. Alors que le jeu lui-même double le buffering afin que l'objet Image puisse être déplacé vers l'emplacement de la balle du joueur (pas encore implémenté). Par conséquent, mon problème est dû au fait que je crée un objet Image mais quelquechose parce que celui-ci a été initialisé à zéro, donc je reçois une exception NullPointerException.Java - double buffering NullPointerException
est ici la source des méthodes qui traitent de la peinture:
public class MyWindow extends JFrame {
//...the other code
public void paint(Graphics g){
thegame.draw();
repaint();
}
}
public class Game extends JFrame implements Runnable {
ball[] cellmap;
//...the other code
public void draw(){
Image GameImage = createImage(800,800);
Graphics GameGraphics = GameImage.getGraphics();
for(int i = 0;i<cellmap.length;i++)
cellmap[i].draw(GameGraphics);
g.drawImage(GameImage, 0, 0, this);
}
}
public class Ball extends JFrame {
//...the other code
public void draw(Graphics g){
g.setColor(Color.red);
g.fillOval((int)(this.x+this.radious),(int)(this.y+this.radious),
(int)this.radious,(int)this.radious);
}
}
S'il vous plaît me dire que vous n'êtes pas réellement utiliser lowerCamelCase pour les classes et UpperCamelCase pour les variables. –
Peut-être lié: http://stackoverflow.com/questions/1541845/problems-with-createimageint-width-int-height –
Ce code a commencé à mal tourner dès que le 2ème 'JFrame' a été introduit, sans parler de la 3ème ! Pour une meilleure aide plus tôt, postez un [SSCCE] (http://sscce.org/). –