Java NetBeans默认Jlist将其更改为arraylist

Java NetBeans默认Jlist将其更改为arraylist,java,swing,netbeans,arraylist,jlist,Java,Swing,Netbeans,Arraylist,Jlist,基本上,我拥有NetBeans中GUI生成器的默认创建者,生成以下代码: IPAddressList = new javax.swing.JList(); IPAddressList.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return

基本上,我拥有NetBeans中GUI生成器的默认创建者,生成以下代码:

IPAddressList = new javax.swing.JList();

IPAddressList.setModel(new javax.swing.AbstractListModel() {
    String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
    public int getSize() { return strings.length; }
    public Object getElementAt(int i) { return strings[i]; }
});

AddressList.setViewportView(IPAddressList);
我想把它改为一个ArrayList,而不是一个向量,在这里我可以通过按钮使用ArrayList的add和remove函数。我是GUI世界的新手,我一直在尝试几种不同的方法(我不知道应该把DefaultListModel放在哪里才能让它正常工作)。请尽可能具体地回答这个问题

我真正需要的是一个Jlist代码,我可以将此代码更改为一个ArrayList,如果我说IPAddressList.ArrayList.add(),它将向此Jlist中的ArrayList添加一些内容,并相应地更新Jlist。移除也一样。提前谢谢

你可以做:

方法1(可变):

方法2(不变):

List myList=。。。
JList myJList=newjlist(myList.toArray(新字符串[myList.size()]);
诚然,第二种方法没有使用
DefaultListModel
,但以下是它被包括在内的原因:


使用DefaultListModel对于容纳200个或更多项目的模型来说相对较慢。将
对象的数组
传递到比使用
DefaultListModel
单独添加元素更快,因为新的
AbstractListModel
是基于
列表
元素创建的。本文对此进行了讨论,并给出了备选方案。

+1但这里的大多数OPs从未使用过Java7和Swing a泛型,请通知……:-)好的,公平地说,我已经回到Java6来匹配OP的问题:)
List<String> myList = 
      new ArrayList<>(Arrays.asList("Item 1", 
                                    "Item 2", 
                                    "Item 3", 
                                    "Item 4", 
                                    "Item 5"));

DefaultListModel model = new DefaultListModel();
JList myJList = new JList(model);
model.clear();
for (String item : myList) {
   model.addElement(item);
}
List<String> myList = ...    
JList myJList = new JList(myList.toArray(new String[myList.size()]));