【发布时间】:2011-04-25 03:57:46
【问题描述】:
我有 JList 使用 ListModel 而不是 DefaultListModel。我现在不想更改类型,因为我在很多地方都在使用它。我想从同一个列表中删除选定的项目。我该怎么做呢?我正在使用以下代码,但它不适合我。
made_list.removeSelectionInterval(
made_list.getSelectedIndex(), made_list.getSelectedIndex());
--编辑--
我在创建列表时使用以下代码:
made_list = new javax.swing.JList();
made_list.setModel(new DefaultListModel());
然后在JButton mouseclick 事件中,我使用以下代码在按下按钮时从列表中删除所选项目
private void removeActionPerformed(java.awt.event.ActionEvent evt) {
//made_list.removeSelectionInterval(made_list.getSelectedIndex(),
//made_list.getSelectedIndex());
System.out.println(made_list.getModel());
DefaultListModel model = (DefaultListModel)made_list.getModel();
model.remove(1);
}
【问题讨论】:
-
很抱歉,我正在使用 NetBeans 将列表组件绘制到面板上。当我使用 getModel() 时,我得到 javax.swing.JList$4@34f09710 并且当我尝试将其类型转换为 DefaultListModel 时,我在线程“AWT-EventQueue-0”java.lang.ClassCastException:javax.swing 中得到错误异常.JList$4 不能转换为 javax.swing.DefaultListModel
-
重新格式化的代码;复制编辑;如果不正确请还原。如果您不使用
DefaultListModel,那么ClassCastException是有意义的。您应该能够将其转换为您的自定义模型。 -
请查看对我上一个答案所做的修改,包括我的 SSCCE 版本。