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

标签 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 它告诉我将 made_model 转换为 Jlist,我这样做了,但是在运行类(class)时,我得到了这个错误

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

最佳答案

setListData() 是 JList 的方法,不是 ListModel 的方法。您不能将 ListModel 转换为 JList。

您的代码应该是:

madeList.setListData( newMadeModel );

编辑:

与其使用数组来创建新模型,不如使用 DefaultListModel:

DefaultListModel model = new DefaultListModel();

然后你可以不使用索引直接将对象添加到模型中:

model.addElement(...);

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

list.setModel( model );

这样你就不太可能在玩 3 个数组的索引时出错。

如果您需要更多帮助,请接受此答案(因为它是关于编译错误的)并发布一个带有适当 SSCCE 的新问题这说明了问题。

关于java - 从 jlist 添加元素时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299616/

相关文章:

java - org.apache.batik.transcoder.TranscoderException : null Premature end of file

java - 从 JTextField 到 JTable 的数据

java - 如何获取图像的高度和宽度?

java - 如何将渐变设置为TextView的文本颜色?

java - 网格布局列

java - 为什么对 JList.clearSelection() 的调用会给我一个空指针异常?

java - JList - 选择选项

java刷新一个数组到jList

java - 是否可以获取一个字符串并将其放入 System.in 中?

java - DefaultListModel 不添加元素