好的,我对 java 是半新的,我正在做一个乒乓球游戏。我想完全自己做,但我遇到了一个问题。到目前为止,我已经上了 2 节课。我的主要一个,一个包含有关球的信息。我的主要课程如下:
    import java.awt.Canvas;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
public class Main extends Canvas implements Runnable{
    private static final long serialVersionUID = 1L;
    public static int Width=800;
    public static int Height=600;
    public boolean Running=false;
    public Thread thread;
    public Ball ball;
    public int BallX = ball.BallLocationX;
    public int BallY = ball.BallLocationY;
    public static void main(String[] args){
        Main game = new Main();
        JFrame frame = new JFrame();
        frame.setSize(Width, Height);
        frame.setTitle("Pong By Poo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);
        frame.add(game);
        game.start();
        }
    public void start(){
        if(Running==true){
            return;
        }
        else {
            Running=true;
            thread = new Thread(this);
            thread.start();
        }
    }
    public void run(){
        while(Running==true){
            Draw();
        }
    }
    public void Draw(){
        BufferStrategy bs = this.getBufferStrategy();
        if(bs==null){
            createBufferStrategy(2);
        }else{
            Graphics g = bs.getDrawGraphics();
            g.setColor(Color.BLACK);
            g.fillOval(BallX, BallY, 10, 10);   
        }
    }
}
我的球类是这样的:
    **import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Ball extends JPanel{
    public int BallLocationX;
    public int BallLocationY;
    public boolean BallMovementY; //true makes the ball go up, false makes it go down
    public boolean BallMovementX; //True makes the ball go right, false makes it go left.
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        g.setColor(Color.BLACK);
        g.fillOval(BallLocationX, BallLocationY, 10, 10);
    }
    //moves the ball left to right
    public int YVelocity(){
        if(BallMovementY==true){
            BallLocationY++;
        }
        else{
            BallLocationY--;
        }
        return BallLocationY;
    }
    //Moves the ball up and down
    public int XVelocity(){
        if(BallMovementX==true){
            BallLocationX++;
        }
        else{
            BallLocationX--;
        }
        return BallLocationX;
    }
}
**
我试图在我的主班内的屏幕上画球,使用我从球班得到的球的位置。我知道(到目前为止)球不会移动,稍后我会弄清楚的。我的问题是它不会在屏幕上绘制球,给我这个错误:
Exception in thread "main" java.lang.NullPointerException
    at Main.<init>(Main.java:20)
    at Main.main(Main.java:26)
谢谢!