2013-09-26 1 views
0

내가 가 지금은이 배열의 모든 요소에 원하는 JComponent allComp[]; 같은 JComponent의 기준은 다음과 같은 구성 요소의 다른 종류를 보유하고 있습니다JComponent을 참조 배열

allComp[0] = new JComboBox();

allComp[1] = new JButton();

에 구성 요소의 여러 유형을 추가

allComp[2] = new JMonthChooser();

null 포인터 예외가 발생했습니다. 이것이 가능한가?? 가능한 경우 어떻게? 이 문제에 대해 저를 도우십시오. 덕분에

+0

배열을 초기화하는 것을 기억하십니까? 즉, allComp = new JComponent [3]입니까? 나는 또한 대신 List의 사용을 권하고 싶다;) – MadProgrammer

+0

오, 예 ... 알 겠어. 실제로 편집인은 추가 제안을하지 않았다. 그것이 내가 간과 한 이유입니다. 지금 바보 같은 질문 인 것 같습니다. –

+0

어쨌든 고마워요 :) –

답변

0

을 그리고 null을합니다.

JComponent allComp[] = new JComponent[MAX_COMPONENTS]; 

어쨌든, 당신이 구성 요소의 수를 미리 알 수없는 경우 배열 대신 List를 사용하는 것이 좋습니다.

List<JComponent> allComp = new ArrayList<>(); 
allComp.add(new JComboBox()); 
allComp.add(new JButton()); 
allComp.add(new JMonthChooser()); 
0

당신은 배열 객체 자체를 만들 필요가 사전 : 당신은 아마 allComp를 초기화하지 않은

JComponent[] allComp = new JComponent[ARRAYSIZE]; 
0

난 당신이

JComponent allComp[] 

처럼 배열

int arraySize = 20; 
JComponent allComp[] = new JComponent[arraySize]; 

이렇게 뭔가를 초기화하지 않은 가정 만 종류의 약속처럼 개체, "어딘가"선언 " 이 코드에서는이 객체를 사용 하겠지만 아직 원하는 객체를 결정하지 않았으므로 정의되지 않은 상태로 남겨 두었습니다. "

"초기화"는 실제로 개체를 만들기 위해 수행해야하는 작업입니다. 보통

new 

키워드를 사용하면됩니다.