기본 목표는 3x3 패턴의 9 개의 흰색 정사각형으로 채워진 JPanel을 갖는 것입니다. 사각형은 150x150 빈 흰색 .jpg 파일입니다. 나중에 프로그램이 빈 사각형을 단순한 이미지 선택 중 하나로 변경해야하므로 언제든지 사각형을 변경할 수 있어야합니다. 문제는 단순히 NullPointerException이 발생한다는 것입니다. null로 배열을 초기화하는 것과 관련 있다고 가정해야하지만 NetBeans (예, NetBeans ...)는 그렇게하지 않으면 나에게 화를 낸 것처럼 보입니다. 배열의 크기를 선언하려고 할 때도 마찬가지입니다. .? "ArrayType [arraysize] arrayName;"(즉 ... 것Java - 루프 (NullPointerException)를 통해 ImageIcon을 사용하여 JLabel의 배열 채우기
이편집 난 그냥 격렬하게 추측하고있어, "예, EGH
- NullPointerException이 고정,하지만 지금은 빈 (흰색) 이미지 . 단순히 새로운 상태를 반영하기 위해 편집 아래 코드 프레임에 표시되지 않습니다, 더 잠재적으로 관련 라인이 추가 여기
모든 관련 코드 수 :. 또한JFrame controller = new JFrame("SmartHome Interface");
controller.setVisible(true);
controller.setSize(480,500);
controller.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//[...]
JPanel labelPanel = new JPanel();
//[...]
labelPanel.setBackground(Color.GREEN);
//[...]
ImageIcon blank = new ImageIcon("../Images/blank.jpg");
//[...]
controller.add(labelPanel);
//[...]
JLabel[] labels = new JLabel[9];
for (int i = 0; i <= 8; i++)
{
int xLowBound;
int xUpBound;
int yLowBound;
int yUpBound;
//Maths for positioning the labels correctly. Should be 150px in size with 10px gaps each.
xLowBound = (i % 3) * 160;
xUpBound = xLowBound + 150;
yLowBound = (i/3) * 160;
yUpBound = yLowBound + 150;
labels[i] = new JLabel();
labels[i].setIcon(blank);
labels[i].setBounds(xLowBound, yLowBound, xUpBound, yUpBound);
labelPanel.add(labels[i]);
}
..... 파일 경로입니다 ImageIcon이 맞는지? "src/smarthome"에있는 코드 자체 및 "src/Images"에있는 이미지
포럼 규칙/행동 강령/등을 위반하면 사과드립니다. 여기 Newby는 조심하지 않으려 고 노력했지만 뭔가를 잊어 버렸을 수도 있습니다.
감사합니다, 나는 정확히 이루어지지했고 나는 더 이상 오전 오류를 받고, 그러나 빈 (흰색) 이미지가 단순히 표시되지 않습니다 프레임에. – Malix