그래서 난과 같이 2 차원 배열까지 정상 선언배열 액세스가 거부되었습니다.
는private JPanel[][] panels = new JPanel[10][8];
은 그럼과 같이 그것을 채우기 : 그럼
GridBagConstraints c = new GridBagConstraints();
for(int i = 0; i < 8; i++){
for(int j = 0; j < 10; j++){
JPanel temp = new JPanel();
if(rand.nextInt(10)+1 > 8 && (j != 0 && i != 0)){
temp.setBackground(Color.BLACK);
temp.setName("wall");
}else{
temp.setBackground(Color.WHITE);
temp.setName("space");
}
c.gridx = j;
c.gridy = i;
boardCotent.add(temp,c);
panels[j][i] = temp;
}
}
}
좋아, 출력 그것이 바로 채워 확인? 스위치에서 다음
, 나는 액세스하려고 해요 ...이 일을, 그래서 분명히2:2 -> wall
3:2 -> null
4:2 -> null
5:2 -> wall
: 여기
for(int i = 0; i < 8; i++){
for(int j = 0; j < 10; j++){
System.out.println(j + ":" + i + " -> " + panels[j][i].getName());
}
}
는 루프 위의 출력 샘플입니다 그것이 "벽"인지 "공간"인지 확인하고 널 포인터 예외가 생깁니다. 여기에 결함이있는 것 같습니까?
if(y > 0 && !panels[x][y-1].getName().matches("wall")){
y--;
}
'패널 [X] [Y-1] y'가'널 (null)입니다'체크 일부 널 (null)을 할 필요가 의미'3' 'x'는'3' 또는'4'입니다. –
귀하의 스위치는 어디입니까 ?? –
여기에 붙여 넣지 않았습니다. 이것은 플레이어가 향하고있는 방향을 나타내는 사적인 변수의 스위치였습니다. 따라서 y 또는 x는 증가/감소합니다. 나는 일요일부터 모든면에서 스위치를 테스트 했으므로 괜찮습니다. 나는이 배열에 문제를 격리시켰다 ... 나는 지금 고쳐야한다. 그리고 나의 판을 실제로 상쾌하게하기 위해 나의 창문을 상쾌하게하는 것에 고투하고있다. 나는 내가 할 수 있다면 그것에 대한 질문을 게시 할 것이다. 내 연구와 문서화에서 무엇이든 돌리십시오. 답장을 보내 주셔서 감사합니다. :) –