如何将DefaultListModel转换为List <object>?</object>

时间:2009-10-29 16:00:15

标签: java

我必须将DefaultListModel(在列表框中)中的所有元素放入List<Object>。我怎么能用Java做到这一点?

3 个答案:

答案 0 :(得分:11)

Arrays.asList(model.toArray());

答案 1 :(得分:7)

如果您想制作内容的副本,那么您可以使用DefaultListModel.toArray获取数据并构建您最喜欢的List实现。或者,您可以循环ListModel.getElementAt ListModel.getSize次。

如果您希望在集合之间建立实时连接而不是副本,请使用AbstractList

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

您可能希望在其中滑动Class.cast,但Swing类型不存在泛型存在固有问题。

答案 2 :(得分:1)

根据你们API的说法,你需要使用elements()方法并迭代它们,将它们添加到列表中。 DefaultListModel与普通的Collections类不在同一层次结构中。

或者使用jarnbjo建议的内容!