2013-02-12 2 views
1

clickCell[r][c] = false;new LifeGUI(new LifeModel(x, y, s);에서 NullPointerException이 발생하여 고칠 수 없습니다. 이 문제가 발생하는 이유와 해결 방법에 대해 설명하십시오.왜이 NullPointerException을 수신합니까?

코드 :

public LifeModel(int rows, int cols, int cellSize) { 
    row = rows; 
    col = cols; 
    cSize = cellSize; 
    for (int r = 0; r < row; r++) { 
     for (int c = 0; c < col; c++) { 
      clickCell[r][c] = false; 
     } 
    } 
} 

public static void main(int x, int y, int s) { 
    new LifeGUI(new LifeModel(x, y, s));   
} 
+1

clickCell의 유형은 무엇입니까? 어쩌면 방금 할당하지 않은 것 같습니다. – thang

답변

2

당신은 루프의 전에이 명령을 추가 배열 객체

boolean [][] clickCell = new boolean[rows][cols]; 

을 만들어야합니다.

더 많은 정보 here

clickCell이 다른 곳에서 선언 된 경우, 명령은 다음과 같아야합니다

clickCell = new boolean[rows][cols]; 

또는 GriffeyDog 알 수 있듯이에 따라, 당신은 배열을 선언 장소에서 new boolean[rows][cols] 추가 귀하의 프로그램의 논리.

2

clickcell 배열이 선언 된 곳을 표시하지 않았지만 선언했지만 초기화하지 않았을 가능성이 있습니다. 당신은

boolean[][] clickcell; 

하지만 필요가 있습니다 : rowscols는 당신이 필요로하는 배열의 크기를 나타냅니다

boolean[][] clickcell = new boolean[rows][cols]; 

.

+0

당신이 옳았다는 것을 알았습니다. 그런 간단한 실수는 당신의 도움에 감사드립니다. – Tiger101

관련 문제