从jlist添加元素时出现编译错误

时间:2011-09-04 13:50:44

标签: java swing jlist

我正在尝试将Jlist中的元素添加到另一个,如果这是正确的术语,则追加 在搜索时,我发现了这段代码并尝试了它,但它不起作用

ListModel made_model = made_list.getModel(); // 1

Object[] orig_sel = orig_list.getSelectedItems(); // 2

Object[] new_made_model = new Object[made_model.size() + orig_sel.length]; // 3

// this block is 4
int i = 0;
for(;i < made_model.size(); i++) 
    new_made_model[i] = made_model.getElementAt(i);
for(; i < new_made_model.length; i++) 
    new_made_model[i] = orig_sel[i - made_model.size());

made_model.setListData(new_made_model); // 5

错误在这一行

  • made_model.setListData(new_made_model); // 5 它告诉我将make_model强制转换为Jlist,我做了但是在运行该类时,我得到了这个错误

  • javax.swing.JList $ 1无法强制转换为javax.swing.JList

1 个答案:

答案 0 :(得分:4)

setListData()是JList的方法,而不是ListModel的方法。您无法将ListModel强制转换为JList。

您的代码应为:

madeList.setListData( newMadeModel );

编辑:

不要使用Arrays来创建新模型,而只需使用DefaultListModel:

DefaultListModel model = new DefaultListModel();

然后,您可以直接将对象添加到模型中,而无需使用索引:

model.addElement(...);

完成后,将模型添加到列表中:

list.setModel( model );

这样,在使用3阵列的索引时,你不太可能犯错误。

如果您需要更多帮助,请接受此答案(因为它是关于编译错误)并发布一个新问题,并使用适当的SSCCE来解决问题。