我必须将DefaultListModel
(在列表框中)中的所有元素放入List<Object>
。我怎么能用Java做到这一点?
答案 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建议的内容!