2009-10-29 9 views

답변

7

내용의 사본을 만들려면 DefaultListModel.toArray을 사용하여 데이터를 가져오고 여기에 좋아하는 List 구현을 구성하십시오. 또는 ListModel.getElementAtListModel.getSize 회까지 반복 할 수 있습니다.

public static List<Object> asList(final DefaultListModel model) { 
    return new AbstractList<Object>() { 
      @Override public Object get(int index) { 
       return  model.getElementAt(index); 
      } 
      ... 
    }; 
} 

당신은 거기에 Class.cast을 슬라이드 할 수 있지만, 스윙 타입은 일반적인없는과 고유의 문제가 있습니다 : 당신이 컬렉션이 아니라 복사본 사이의 라이브 연결을 원하는 경우

, AbstractList를 사용합니다.

11
Arrays.asList(model.toArray()); 
+0

데이터를 복사하거나 연결하려는 경우에 따라 다릅니다. –

1

너희 올드 API에 따르면, 당신은 목록에 추가하는 elements() 방법을 사용하고 반복해야합니다. DefaultListModel은 일반 Collections 클래스와 동일한 계층 구조가 아닙니다.

또는 jarnbjo가 제안한 것을 사용하십시오!

관련 문제