javajlist模型
如何从javajlist模型,java,swing,jlist,Java,Swing,Jlist,如何从JList创建列表模型,以便能够在其中插入项目。 我想使用这个方法:addElement(java.lang.Object项) 我找到了一个解释,但问题是ListModel是一个接口 即使我编写了一个实现并重写了它的方法,我也不能使用addElement()方法Java已经提供了ListModel的实现,就像您可以实例化和使用的那样 例如: final DefaultListModel model = new DefaultListModel(); model.addElement("on
JList
创建列表模型,以便能够在其中插入项目。
我想使用这个方法:addElement(java.lang.Object项)
我找到了一个解释,但问题是ListModel
是一个接口
即使我编写了一个实现并重写了它的方法,我也不能使用
addElement()
方法Java已经提供了ListModel
的实现,就像您可以实例化和使用的那样
例如:
final DefaultListModel model = new DefaultListModel();
model.addElement("one");
model.addElement("two");
model.addElement("three");
final JList list = new JList(model);
如果有人需要使用自定义的
ListModel
,这只是另一种方法。在实现列表模型接口的类中,有必要创建一个结构来实际保存元素,如LinkedList
,如下所示:
public class MyListModel implements ListModel{
private LinkedList data;
private LinkedList<ListDataListener> listeners;
public MyListModel() {
data = new LinkedList();
listeners = new LinkedList();
}
public void addElement(Object element){
data.add(element);
}
@Override
public int getSize() {
return data.size();
}
@Override
public Object getElementAt(int index) {
return data.get(index);
}
@Override
public void addListDataListener(ListDataListener l) {
listeners.add(l);
}
@Override
public void removeListDataListener(ListDataListener l) {
listeners.remove(l);
}
}
公共类MyListModel实现ListModel{
私有链接列表数据;
私有链接列表侦听器;
公共MyListModel(){
数据=新的LinkedList();
侦听器=新的LinkedList();
}
public void addElement(对象元素){
数据。添加(元素);
}
@凌驾
公共int getSize(){
返回data.size();
}
@凌驾
公共对象getElementAt(int索引){
返回数据。获取(索引);
}
@凌驾
public void addListDataListener(ListDataListener l){
添加(l);
}
@凌驾
公共void removeListDataListener(ListDataListener l){
删除(l);
}
}
您还可以创建访问方法来执行与
LinkedList
相关的任何操作,如removeElement(对象元素)
,或者只将数据LinkedList
公开,或者在必要时使用不同的数据结构。当然,对于一个简单的实现来说,使用Java提供的模型总是比较容易的。谢谢,我把最后一行改为list.setModel(model);这对我很有用,看看这个。包含如何向JList添加列表的示例