Java JList如何以简单的方式删除项目?

Java JList如何以简单的方式删除项目?,java,jlist,Java,Jlist,我知道有一些问题与此相关,但它们根本没有帮助我 我的代码很简单 我正在尝试删除列表中的第一项 DefaultListModel model = (DefaultListModel) jList1.getModel(); model.removeElementAt(0); 这给了我一个ClassCastException,如下所示 Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: rfs.se

我知道有一些问题与此相关,但它们根本没有帮助我

我的代码很简单 我正在尝试删除列表中的第一项

DefaultListModel model = (DefaultListModel) jList1.getModel();        
model.removeElementAt(0);
这给了我一个ClassCastException,如下所示

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: rfs.search$1 cannot be cast to javax.swing.DefaultListModel
at rfs.search.jTextField1KeyReleased(search.java:130)
at rfs.search.access$500(search.java:15)
“rfs”是我的包名,“search.java”是包含jList1的java文件

基本上我的代码是这样的(这里没有包括一些netbeans自动生成的代码)


}

如果使用
向量
初始化
JList
,则
向量
的所有更改都将在
JList
中可见

代码:


有两种方法,但都是相似的: 方式1: 假设您的JList是jList1 现在,要在jList1中使用DefaultListModel,您需要设置jList1模型,请按照代码在jList1中设置模型并添加值:

jList1.setModel(new DefaultListModel());

DefaultListModel lm1=(DefaultListModel) jList1.getModel();

lm1.add(0, "A");
lm1.add(1, "B");
lm1.add(2, "C");
lm1.add(3, "D");
lm1.add(4, "E");
要删除第一(0)项,请执行以下代码:

lm1.remove(0);
方式2: 在NetBeans中,请遵循以下步骤: 首先在拖放区域选择您的JList,右键单击并选择“自定义代码…”,然后在左侧将“默认代码”更改为“自定义创建”,并根据以下代码更改代码(右侧)

jList2 = new javax.swing.JList();
jList2.setModel(new DefaultListModel());
jScrollPanel.setViewportView(jList2);
这里jList2是您正在使用的JList的变量名

现在您可以毫无例外地使用DefaultListModel。您可以按以下方式向列表中添加值

DefaultListModel listModel=(DefaultListModel)jList2.getModel();
listModel.add(0,"A");
listModel.add(1,"B");
listModel.add(2,"C");
要删除第一(0)项,只需执行以下操作
listModel.remove(0)

您应该在问题中包含search.java的相关代码。这不是获取第一个元素的问题。错误发生在之前。您的jList1.getModel()不是DefaultListModelRenéWinkler类型。告诉您如何修复此问题会有帮助,使我的问题没有帮助根本没有帮助。Eran,我在问题中添加了基本代码
lm1.remove(0);
jList2 = new javax.swing.JList();
jList2.setModel(new DefaultListModel());
jScrollPanel.setViewportView(jList2);
DefaultListModel listModel=(DefaultListModel)jList2.getModel();
listModel.add(0,"A");
listModel.add(1,"B");
listModel.add(2,"C");