2014-10-11 2 views
1

내 프로젝트에 많은 텍스트 필드를 추가하고 모든 22 개의 텍스트 필드에 동일한 속성이 있으므로 배열을 사용하기로 결정했습니다.어떻게 JTextField 배열을 만들 수 있습니까?

나는 JTextField txtFld[] = new JTextField[5];을 시도했다. 너무 많은 라인과를 차지하고 있기 때문에 더 매개 변수 오류가 없습니다하지만 난 내 프로그램을 실행하려고 할 때,이 콘솔에 표시

Exception in thread "main" java.lang.NullPointerException 

나는

JTextField txtFld[] = new JTextField[]{ 
    new JTextField(10), 
    ... 
    ... 
    ... // repeat the same code about 20 times 
}; 

을 사용하지 않으 텍스트 필드는 어쨌든 동일한 유형입니다. 원하는 길이의 텍스트 필드 배열을 사용하면됩니다. mainPanel(txtFld[0]); ... mainPanel(txtFld[21]);

한 줄의 코드로 텍스트 필드 배열을 만들 수 있습니까?

+0

루프를 사용 해본 적이 있습니까? 모든 새로운 JTextField [5]는 5 개의 텍스트 필드에 _space가있는 배열을 생성합니다. 그러나 실제로'JTextField' 객체로 채우지는 않습니다. 객체는'new' 키워드로 생성됩니다. 따라서 20 줄의 코드를 사용하지 않으려면 루프를 사용하여 3 줄로 줄일 수 있습니다. –

+0

[배열 사용 방법] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html) 및 [루프 사용 방법] (http://docs.oracle.com/)을 참조하십시오. .com/javase/tutorial/java/nutsandbolts/for.html) 도움이 될 것입니다. –

답변

1

저는 처음으로 질문에 대답 할 수 있지만 반복되는 질문입니다. 나는 답을 쓰고있다 :

FIELDS는 JTextField 애레이든 상수이든 명확하지 않다. 구성 요소 배열 자체 인 경우 반복 할 때 .length 배열 필드를 사용하는 것이 좋습니다. 코드 유지 관리가 줄어 듭니다.

Container c = getContentPane(); 
JTextField[] fields = new JTextField[22]; 
for (int i = 0; i < 22; i++) { 
    fields[i] = new JTextField("Your Value"); 
    //you can add any listener for JTextField here 
    c.add(fields[i]); 
} 

참고 Java 명명 규칙에서 상수는 변수에 사용됩니다.

답변은 here에서 복사되었습니다. 나는이 질문을 중복으로 표시 할 수 없었다.

관련 문제