JList添加和删除项目(Netbeans)

arn*_*tvh 4 java user-interface swing netbeans jlist

我正在尝试添加和删除jList(jList1)中的项目,但它不起作用.我已经在stackoverflow上搜索了同样问题的其他人,但是当他们的问题解决后,我不断收到错误.所以这就是我如何声明jList:

jList1.setModel(new javax.swing.AbstractListModel() {
        String [] strings = lijstItems;
        public int getSize() {
            return strings.length;
        }
        public Object getElementAt (int i) {
            return strings[i];
        }
    });
Run Code Online (Sandbox Code Playgroud)

所以现在我做了这些按钮来添加和删除列表中的项目:

private void addHostActionPerformed(java.awt.event.ActionEvent evt) {                                        
    // TODO add your handling code here:

    DefaultListModel model = (DefaultListModel) jList1.getModel();
    model.add(2, "item");
    // THIS DOES NOT WORK...

}
Run Code Online (Sandbox Code Playgroud)

private void deleteHostActionPerformed(java.awt.event.ActionEvent evt) {                                           
    // TODO add your handling code here:

}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多东西,但它们不起作用!有人可以帮我吗?

谢谢!

Pau*_*tha 6

您将列表的模型设置为AbstractListModel.你不能将模型转换为DefaultListModel.尝试这样做会给你ClassCastException一个DefaultListModel相反的设置模型.

jList1.setModel(new DefaultListModel());
Run Code Online (Sandbox Code Playgroud)

并且你可能想要使用DefaultListModel#addElement(element)而不是每次都将元素添加到相同的索引add(2, element)

  • 不,这就是你已经在做的事情.它没有工作.如果您使用的是Netbeans GUI Builder,只需右键单击列表,然后转到属性.单击`model`属性中的省略号.从下拉列表中转到`custom code`,然后输入`new DefaultListModel()`.您可能必须在之后解决导入问题.只需转到您的来源并按Ctrl + Shift + O即可 (2认同)