2012-05-21 4 views
3
ArrayList <String> cdcollection = new ArrayList(); 

private void initButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    Collections.addAll(cdcollection, "small", "mayre", "brown", "evner", "rain"); 
    initButton.setEnabled(false); 

} 

private void displayButtonActionPerformed(java.awt.event.ActionEvent evt) { 

      for (int i = 0; i < cdcollection.size(); i++) { 
      mainTextArea.setText(cdcollection.get(i)); 
    } 
} 

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    cdcollection.add(cdtitleInput.getText()); 
} 

private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    cdcollection.remove(cdcollection.size()-1); 
} 

이것을 실행하고 표시 버튼을 클릭하면 마지막 CD 제목 (비) 만 나타납니다 ... 다섯 개의 CD 제목을 모두 한 줄에 각각 표시하려면 어떻게합니까? 아래 그림과 같이ArrayList를 표시 하시겠습니까?

답변

0

displayButtonActionPerformed 방법에 변화를 수행합니다.

private void displayButtonActionPerformed(java.awt.event.ActionEvent evt) {  
    String str = ""; 
    for (int i = 0; i < cdcollection.size(); i++) { 
      str = str + cdcollection.get(i); 
    } 
    mainTextArea.setText(str); 
} 
+0

추가 기능은 추가 버튼이 눌려지면 전체 모음을 추가하여 추가 기능에 영향을주기 때문에 더 효과적입니다. – May

+0

문제가 해결되면 대답을 수락하십시오. 그것이 SO가 작동하는 방법입니다 ... –

+0

for-loop를 단순화 한 것은 당신을위한 것이 아닙니다? –

8

사용 Append() 대신 setText()

+0

감사합니다. 작동하지만 모두 한 줄로 표시됩니까? – May

+0

\ n을 사용하여 줄을 구분할 수 있습니다. 필요한 경우 append()를 사용하기 전에 setText()를 사용하여 상자를 지울 수도 있습니다. – OmniOwl

0

단순화 된 for-loop를 사용하십시오.

private void displayButtonActionPerformed (ActionEvent evt) {  
    for (String cd : cdcollection) { 
      mainTextArea.append (cd + "\n"); 
    } 
} 

종종 off-by-one 오류를 예방할 수 있으며, 더 짧아지고 더 읽기 쉽습니다.

관련 문제