2011-10-23 2 views
1

간단한 슬라이드 프로그램이 있고 응용 프로그램의 왼쪽에 현재 응용 프로그램에서 슬라이드를 표시하는 JList이 있습니다. 슬라이드를 저장하고로드 할 수 있습니다. 문제는 XML 파일에서 슬라이드를로드하려고 할 때 JList에서 모든 항목을 삭제하고 추가 할 수 없다는 것입니다. 왜냐하면 내가 요소를 model.removeAllElements();까지 제거한 다음 항목을 추가하려고하기 때문에;JList 편집 또는 새로 고침

for(int i=0; i<mL.size(); i++){ 
     model.add(i, "Slide No: " + i); 
     slideCounter++; 
    } 

은 (dMode) 다음 valueChanged 함수가 호출 될 것이고, 나는 그 함수에서의 ArrayList에서 요소를 얻고 있기 때문에, 내 부하 방법에서, 나는 새로운 빈 목록을 작성, 따라서 ArrayIndexOutOfBoundsException

을 제공합니다 , 다음 슬라이드 수와 함께 목록을 초기화합니다 :

list = new JList(dMode); 
    jScrollPane1 = new JScrollPane(list); 

현재 목록에 새 목록을 할당 할 수 없습니다.

귀하의 조언은 무엇입니까, 어떻게 해결해야합니까?

감사합니다.

+0

valueChanged of class? 어쨌든, 당신이 보이지 않는 코드에서 뭔가 잘못하고있는 것처럼 들리 네요. – kleopatra

답변

1

ListModel을 구현하거나 JGoodies Binding을 사용하여 데이터를 목록에 바인딩합니다. JGoodies를 사용하면 배열 내용이 변경 될 때마다 뷰 모델이 PropertyChangeEvent을 발생시킬 수 있으므로보기가 자동으로 업데이트됩니다. 예 :

Bindings.bind(myJList, new SelectionInList<String> 
    (beanAdapter.getValueModel("listContents"), 
    beanAdapter.getValueModel("listSelection"))); 

목록 내용에 대한 속성과 현재 선택 사항에 대한 속성이있는보기 모델 클래스입니다.