Hi srs.
I’m writing a code for a game like Table Tennis and i have to use double buffering to prevent flickering.
The problem is that i have a background picture and another picture attached to the mouse moviments and the current code that i have, compiles but is not working.
Im getting a nullPointerException.
Have anyone experienced something like this??
Here is the code…and exception too.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PingPong extends Frame {
public static void main(String[] args) {
new PingPong();
}
PingPong() {
super("PingPong v0.02");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
pingPongPanel pp = new pingPongPanel();
add(pp);
pack();
show();
}
class pingPongPanel extends Canvas implements MouseMotionListener {
int xPos = 0, yPos = 0;
int centerX = 35, centerY= 65;
String bgImage = "Pix/game_arena.jpg", raqte = "Pix/raquete.png";
Image raquete, bg, bgbuffer;
Graphics bgOff;
pingPongPanel() {
raquete = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource(raqte));
bg = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource(bgImage));
bgbuffer = createImage(665, 580);
bgOff = bgbuffer.getGraphics();
addMouseMotionListener(this);
setSize(665,580);
}
public void paint(Graphics g) {
super.paint(g);
bgOff.drawImage(bg, 0, 0, this);
bgOff.drawImage(raquete, xPos - centerX, yPos - centerY, this);
g.drawImage(bgbuffer, 0, 0, this);
//g.drawImage(raquete, xPos - centerX, yPos - centerY, this);
}
public void update(Graphics g) {
paint(g);
}
public void mouseMoved(MouseEvent event) {
xPos = event.getX();
yPos = event.getY();
//bgbuffer.drawImage(bg, 0, 0, this);
//bgbuffer.drawImage(raquete, xPos - centerX, yPos - centerY, this);
repaint();
}
public void mouseDragged(MouseEvent event) {}
}
}
exception:
fcn@tornado:~/Java/PingPong/src$ javac PingPong.java
fcn@tornado:~/Java/PingPong/src$ java PingPong
Exception in thread "main" java.lang.NullPointerException
at PingPong$pingPongPanel.<init>(PingPong.java:38)
at PingPong.<init>(PingPong.java:19)
at PingPong.main(PingPong.java:7)
fcn@tornado:~/Java/PingPong/src$
Thanx in advance
Fernando