包含“帮助”构造函数是为了更容易使用JList
简单的数据结构。
(JList
和许多 Swing 组件)实际上是与向视图提供实际数据的模型一起使用的。
最初的设计可以追溯到 Swing 并入主库之前(在 JDK 1.3 之前),也就是在引入集合 API 之前,所以很可能原始开发人员没有List
可用的资源(因此包含Vector
)。
从那以后可能没有人认为适合更新这些库(部分原因是可能已经决定不应该包括原始构造函数,但我没有参加那次会议;))
一个更好/更简单的解决方案是创建您自己的模型,将其List
用作数据源。
例如...
public class MyListModel<T> extends AbstractListModel<T> {
private List<T> people;
public MyListModel(List<T> people) {
this.people = people;
}
@Override
public int getSize() {
return people.size();
}
@Override
public T getElementAt(int index) {
return people.get(index);
}
}
然后你可以简单地将它提供给JList
你需要的时候......
JList myList = new JList(new MyListModel<MyObject>(listOfMyObjets));