Exception in thread "main" java.lang.NullPointerException
at zhong.BlackVSWhite.init(BlackVSWhite.java:84)
at com.borland.jbuilder.runtime.applet.AppletTestbed.startApplet(Unknown Source)
at com.borland.jbuilder.runtime.applet.AppletTestbed.main(Unknown Source)
就提示这种错误是什么问题啊
at zhong.BlackVSWhite.init(BlackVSWhite.java:84)
at com.borland.jbuilder.runtime.applet.AppletTestbed.startApplet(Unknown Source)
at com.borland.jbuilder.runtime.applet.AppletTestbed.main(Unknown Source)
就提示这种错误是什么问题啊
空指针错误,你调用的那个对象是空的
比如下面代码MyClass c = null;
c.getId(); // 此时 c==null, 不能调用 getId() 方法;你去查
BlackVSWhite.java 的 84行,看看是不是忘了初始化了
private MediaTracker imageTracke
private Image redImage;
private Image blueImage;
private Image offScrImage;
private Graphics offScrGraphics;
imageTracker = new MediaTracker( this );
offScrImage = createImage( 400, 400 );
offScrGraphics = offScrImage.getGraphics();//84行
这要怎么弄才对啊。帮我下。我不会。
System.out.println("offSrcImage="+offSrcImage); // 看看输出什么
offScrGraphics = offScrImage.getGraphics();//84行
private MediaTracker imageTracker;
private Image redImage;
private Image blueImage;
private Image offScrImage;
private Graphics offScrGraphics;
private Font f;
private int fontHeight;
private int fontAscent;
private Button button;
private int buttonHeight;
private Choice choice;
private Choice moveFirst;
private boolean redMoveFirst;
private boolean illegalMove;
private boolean blueNotMoving;
private boolean animating;
private int redScore;
private int blueScore;
private Thread aThread;
private static final int EMPTY = 0;
private static final int RED = 2;
private static final int BLUE = 3;
private static final int BLUE_TEMP = 4;
private static final int RED_TEMP = 5;
private static final int VERYGOOD = 9999;
private static int DIM = 10;
private int boardSize = 400;
private int[] grid = new int[400]; private synchronized void newGame()
{
DIM = (new Integer((String) choice.getSelectedItem())).intValue();
int whoMoveFirst=moveFirst.getSelectedIndex();
if(whoMoveFirst==0)
redMoveFirst = true;
else
redMoveFirst = false; int n1;
int n2;
for( n1 = 0; n1 < DIM; ++n1 )
{
for( n2 = 0; n2 < DIM; ++n2 )
grid[n1 * DIM + n2] = EMPTY;
}
n2 = DIM / 2;
grid[(n2 - 1) * DIM + (n2 - 1)] = RED;
grid[(n2 - 1) * DIM + n2] = BLUE;
grid[n2 * DIM + (n2 - 1)] = BLUE;
grid[n2 * DIM + n2] = RED;
offScrGraphics.setColor( Color.white );
offScrGraphics.fillRect( 0, 0, boardSize, boardSize );
redScore = blueScore = 0;
illegalMove = blueNotMoving = animating = false;
boardSize = -1;
repaint();
if( !redMoveFirst )
{
blueMove();
checkScore();
repaint();
}
} public synchronized void init()
{
aThread = null;
imageTracker = new MediaTracker( this );
offScrImage = createImage( 400, 400 );
System.out.println("offSrcImage="+offScrImage);
offScrGraphics = offScrImage.getGraphics();
f = new Font( "TimesRoman", 0, 12 );
offScrGraphics.setFont( f );
fontHeight = getFontMetrics( f ).getHeight();
fontAscent = getFontMetrics( f ).getAscent();
loadImages();