如何将列表中的特定项目添加到另一个列表



我的程序有问题。由于某种原因,我无法将项目从一个列表转到另一个列表。

defaultListModel model1 = new DefaultListModel();
    DefaultListModel model2 = new DefaultListModel();
    //check an item is selected from listbox
    if (lstlibrary.getSelectedIndex() != -1) {
        int position;
        position = array1.indexOf(lstlibrary.getSelectedValue());
        array2.add(array1.get(position));
        array1.remove(position);    
  //move array to listbox model
        for (String value1 : array1) {
            model1.addElement(value1);
        }
        lstlibrary.setModel(model1);
        for (String value2 : array2) {
            model1.addElement(value2);
        }
        lstlibrary.setModel(model2);    

这是我老师告诉我要做的,我无法让它成功。我已经尝试了一切,但我不知道该怎么做,我对这一切有点陌生,所以如果有人可以帮助我,那就太好了!

问题是您尝试将 model2 设置为读取所选项目的同一列表。您必须有两个列表,例如 lstlibrary1 和 lstlibrary2并尝试将项目从 LST库1 移动到 LST库2所以从这里更改最后几行

 for (String value2 : array2) {
        model1.addElement(value2);
    }
    lstlibrary.setModel(model2);  

对此

for (String value2 : array2) {
        model2.addElement(value2);
    }
    lstplaylist.setModel(model2);  

如果第二个列表对象名称是 lst播放列表同样在第二个 for 循环中,您必须使用 model2 而不是 model1

====

=================================

更新

尝试更改这些功能来解决问题

对于 btnToPlaylistMouseClicked() 将最后两个 for 循环更改为此

// refreshing lstlibrary to remove selected name
for (String value1 : array1) {
        model1.addElement(value1);// adding elements to model1
    }
    lstlibrary.setModel(model1);// using model1 for lstlibrary

//refreshing lstplaylist to add new selected name
    for (String value2 : array2) {
        model2.addElement(value2);// adding elements to model2
    }
    lstplaylist.setModel(model2);// using model2 for lstplaylist

也使用这些 for 循环来表示 btnRemoveMouseClicked()。你那里也有问题。

相关内容

  • 没有找到相关文章

最新更新