2014-12-11 4 views
0

콤보 상자가 있으며 항목을 선택할 때마다 해당 JList가 패널에 표시되고 JList는 텍스트 파일로 채워집니다.Jlist를 지우는 법

내 문제는 콤보 상자에서 다른 항목을 선택할 때 이전 목록에 요소가 3 개 이상 있고 나머지 항목에 2가있는 경우 세 번째 항목은 목록에 머물러 있지 않고 절대로 없어지지 않는다는 것입니다. 다른 목록에는 적어도 같은 양의 요소가 들어 있습니다.

다음은 제 코드입니다.

JList list = new JList(); 

Path Aparts = Paths.get(".\src\assets\acurap.txt"); 

String[] partList = new String[50]; 

String temp2 = ""; 

teamComboBox.addItemListener(new ItemListener() { 

@Override 
public void itemStateChanged(ItemEvent arg0) { 
    if (teamComboBox.getSelectedItem().equals("Acura")) { 
     imageLabel.setIcon(acura); 
     populatedAcurap(); 
    } 
} 

void populatedAcurap() { 
    InputStream input; 

    try { 
     input = new BufferedInputStream(Files.newInputStream(Aparts)); 

     BufferedReader reader = new BufferedReader(new InputStreamReader(input)); 
     int i = 0; 
     temp2 = reader.readLine(); 
     while(temp2 != null) { 
      partList[i] = temp2; 
      list.setListData(partList); 
      temp2 = reader.readLine(); 
      i++; 
     } 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
+1

뿐만 아니라 들여 쓰기 잘못, 당신은 자바 코딩 규칙 전자를 따라하지 않는있다 ither. 자세한 내용은 http://en.wikipedia.org/wiki/Indent_style#K.26R_style에서 확인할 수 있습니다. – Emz

+1

목록 모델을 새로운 빈 모델로 설정하십시오 ... – MadProgrammer

답변

0

귀하의 읽기 방법은 ... 사방에 당신은 끊임없이 기존의 배열로 읽고

  • ,하지만 당신은 그것에서 아무것도 제거하지 ... 그래서 옛 포함 데이터 ... 당신은 당신의 자원을 닫지 마십시오
  • 그것은 당신이 실제로 필요로 얼마나 많은 줄 모르고 배열로 읽어 위험 ...
: 414,대신 파일에서 각 요소를 읽고 새로운 ListModel에 추가, 한 번, 자세한 내용은

void populatedAcurap() { 
    try (BufferedReader reader = new BufferedReader(new FileReader(Files.newInputStream(Aparts)))) { 
     String temp2 = null; 
     DefaultListModel model = new DefaultListModel(); 
     while((temp2 = reader.readLine()) != null) { 
      model.addElement(temp2); 
     } 
     list.setModel(model); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

... 예를 들어, JList에 모델을 적용를 보라 완료

+0

정말 고마워요. 죄송합니다. 저는 Java를 처음 사용하고 선생님은 실제로 우리에게 많은 것을 가르쳐주지 않으므로 스스로 배워야합니다. – Laurencetein

+0

또한 목록에 새 항목을 추가하는 단추가 있지만 목록을 추가 할 때 목록에 표시하려면 어떻게해야합니까? 프로그램을 다시 시작할 때까지 txt 파일에는 추가되지만 목록에는 추가되지 않습니다. 나는 그것이 올바른 용어는 "새로 고침"것이라고 추측했다? – Laurencetein

+0

'ListModel','DefaultListModel model = (DefaultListModel) list.getModel(); '에 대한 참조를 얻은 다음 그 요소를'model.addElement (newElement);'...에 추가하십시오. – MadProgrammer

관련 문제