Java NullPointerException错误:如何修复此错误?

Java NullPointerException错误:如何修复此错误?,java,nullpointerexception,Java,Nullpointerexception,我正试图通过一个Java图形程序制作四个tic tac趾板的简单图像。 我的程序可以编译并运行,但不能生成四块板的图像。我在“交互”窗格中遇到此错误(我使用DrJava编写代码): 我对Java编程相当陌生,我一直在尝试通过在DrJava中进行调试来发现错误,但毫无效果。有人能帮忙吗?:) 从构造函数中删除此行: NsccWindow win; 您已经有了win字段,因此也不需要在构造函数中声明它 在构造函数中声明时,隐藏实例字段并实例化仅限于构造函数范围的变量。因此,当您尝试访问drawTi

我正试图通过一个Java图形程序制作四个tic tac趾板的简单图像。 我的程序可以编译并运行,但不能生成四块板的图像。我在“交互”窗格中遇到此错误(我使用DrJava编写代码):


我对Java编程相当陌生,我一直在尝试通过在DrJava中进行调试来发现错误,但毫无效果。有人能帮忙吗?:)

从构造函数中删除此行:

NsccWindow win;
您已经有了
win
字段,因此也不需要在构造函数中声明它


在构造函数中声明时,隐藏实例字段并实例化仅限于构造函数范围的变量。因此,当您尝试访问
drawTicTacToeBoard
中的实例字段时,它实际上是
null

哪一行是第38行?不仅没有必要,实际上局部变量
win
正在隐藏实例属性
win
。非常感谢!工作很有魅力。@user2305834,接受正确的答案是更好的欣赏。请别忘了检查它是否被接受。
import java.awt.Color;

public class TicTacToeBoards {

  private NsccWindow win;

  public TicTacToeBoards() {

    NsccWindow win;
    win = new NsccWindow(10, 10, 330, 300);
    win.setTitle("Tic-Tac-Toe Boards");
    drawTicTacToeBoard(40, 40);
    drawTicTacToeBoard(40, 170);
    drawTicTacToeBoard(170, 40);
    drawTicTacToeBoard(170, 170);

  }  

  public void drawTicTacToeBoard(int x, int y) {

    NsccLine vertLineL;
    NsccLine vertLineR;
    NsccLine horizLineU;
    NsccLine horizLineD;

    vertLineL = new NsccLine((x + 30), y, (x + 30), (y + 90));
    vertLineR = new NsccLine((x + 60), y, (x + 60), (y + 90));
    horizLineU = new NsccLine(x, (y + 30), (x + 90), (y + 30));
    horizLineD = new NsccLine(x, (y + 60), (x + 90), (y + 30));


    win.add(vertLineL);
    win.add(vertLineR);
    win.add(horizLineU);
    win.add(horizLineD);


    win.repaint();




  }

  public static void main(String[] args) {
    TicTacToeBoards test = new
    TicTacToeBoards();
  }
}
NsccWindow win;