我不确定为什么但是在我的paintComponent方法中,fillOval函数不允许我传入我的其他类坐标。它提出了:
'线程中的异常“AWT-EventQueue-0”java.lang.NullPointerException'
所有矩形画得很好但不是椭圆形。这是paintComponent()方法。
public void paintComponent(Graphics graphics){
graphics.setColor(Color.BLACK);
graphics.fillRect(0,0,600,450);
graphics.setColor(Color.WHITE);
graphics.fillRect(290,0,15,450);
graphics.fillRect(leftPaddle.getXPos(),leftPaddle.getYPos(),10,85);
graphics.fillRect(rightPaddle.getXPos(),rightPaddle.getYPos(),10,85);
graphics.fillOval(ball.getxPos(),ball.getyPos(),ball.getWidth(),ball.getHeight());
}
这是我的Ball类(带有坐标的类)。
public class Ball {
int xPos = 140;
int yPos = 50;
int width = 15;
int height = 15;
public int getWidth() {
return width;
}
public int getxPos() {
return xPos;
}
public int getyPos() {
return yPos;
}
public int getHeight() {
return height;
}
}
这可能是一个非常简单的解决方法,但我对java相对较新,所以请原谅任何格式错误等。
这是我从MainClass获取对象的地方:
public class PaintComponents extends JPanel{
Paddle leftPaddle;
Paddle rightPaddle;
Ball ball;
public PaintComponents(Paddle leftPaddle, Paddle rightPaddle, Ball ball) {
this.leftPaddle = leftPaddle;
this.rightPaddle = rightPaddle;
this.ball = ball;
}
答案 0 :(得分:0)
我没看到你在哪里得到ball
。所以,
Ball ball = new ball()
发生之前像fillOval()
实例化Ball类。或static
,然后使用Ball.getSth()
代替。答案 1 :(得分:0)
因为它显示NullPointerException 你可能没有创造过这个对象" ball"类Ball 尝试添加:
Ball ball=new Ball();
public void paintComponent(Graphics graphics)
中的
在使用" ball"。
之前