我的程序编译完美,但每当我尝试运行它时会抛出NullPointerException。我试着搜索一下,发现错误与程序试图使用它时某些值为null有关,但我重新检查了所有内容并且显示为空白。
import hsa.Console;
import java.awt.*;
import java.util.* ;
public class PlatformAndBall2
{
static Console g ;
public static void BallLoop() throws InterruptedException
{
do {
int height = g.getHeight();
int width = g.getWidth();
int xpos,ypos ; xpos= 0; ypos =0 ;
int radius ; radius = 20 ;
int addx, addy ; addx = 3; addy = 3;
xpos += addx ;
ypos += addy ;
g.setColor(Color.red) ;
g.clear();
g.fillOval(xpos,ypos,radius,radius) ;
Thread.sleep(15); // sets frames
if ( xpos < 0 )
addx += 3 ;
if ( xpos > width - radius)
addx += -3 ;
if ( ypos < 0 )
addy += 3 ;
if ( ypos > height -radius )
addy += -3 ;
}while (true);
}
public static void main(String[] args)throws InterruptedException {
Console g = new Console() ;
BallLoop();
}}
答案 0 :(得分:0)
静态字段static Console g
永远不会被初始化。在您的主要内容中,您正在初始化本地Console g = new Console();.
初始化g = new Console();
public static void main(String[] args)throws InterruptedException {
g = new Console();
BallLoop();
}