2009-10-29 18 views

Respuesta

7

Si desea hacer una copia de los contenidos, puede usar DefaultListModel.toArray para obtener los datos y construir su implementación favorita List con eso. Alternativamente, puede recorrer más de ListModel.getElementAtListModel.getSize veces.

Si desea una conexión en directo entre las colecciones en lugar de una copia, utilice AbstractList:

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

es posible que desee deslizar Class.cast allí, pero hay un problema inherente a los tipos de Swing no ser genérico.

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

Depende si quiere copiar los datos o dejarlos conectados. –

1

Según Ye Olde API, que tendrá que utilizar el método elements() e iterar sobre ellos, añadiéndolos a una lista. DefaultListModel no está en la misma jerarquía que las clases de colecciones normales.

¡O utilice lo que sugirió jarnbjo!

Cuestiones relacionadas