Java 如何将项目从jlist复制到另一个?

Java 如何将项目从jlist复制到另一个?,java,swing,Java,Swing,我在将项目从一个jlist复制到另一个jlist时遇到问题,我设置了一个按钮操作侦听器代码,它可以工作,但不是我想要的。当我选择一个项目并按下按钮时, 所选项目的副本将在jlist2中 但问题是,如果我选择相同的项目并单击按钮,该项目将显示两次,这不是预期的 这是代码,请尽快帮助 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int[] selectedIx = jList1.getSele

我在将项目从一个jlist复制到另一个jlist时遇到问题,我设置了一个按钮操作侦听器代码,它可以工作,但不是我想要的。当我选择一个项目并按下按钮时, 所选项目的副本将在jlist2中

但问题是,如果我选择相同的项目并单击按钮,该项目将显示两次,这不是预期的

这是代码,请尽快帮助

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 

{ 
  int[] selectedIx = jList1.getSelectedIndices();

  DefaultListModel lm = new DefaultListModel();
  ListModel list = jList2.getModel();

  for (int i = 0; i < list.getSize(); i++) {
      Object prev = list.getElementAt(i);
      lm.addElement(prev);
  }

  for (int i = 0; i < selectedIx.length; i++) {
      Object sel = jList1.getModel().getElementAt(selectedIx[i]);
      lm.addElement(sel);
  }

  jList2.setModel(lm);

} 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{ 
int[]selectedIx=jList1.getselecteddinces();
DefaultListModel lm=新的DefaultListModel();
ListModel list=jList2.getModel();
对于(int i=0;i

非常感谢。

您在DefaultListModel中添加了两次元素,这就是原因所在

Object prev  and Object sel   

您在DefaultListModel中添加了两次元素,这就是原因

Object prev  and Object sel   

您在DefaultListModel中添加了两次元素,这就是原因

Object prev  and Object sel   

您在DefaultListModel中添加了两次元素,这就是原因

Object prev  and Object sel   
你喜欢这样吗

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)     
{ 
    List<String> selectedValuesList = jList1.getSelectedValuesList();
    jList2.setListData(selectedValuesList.toArray(new String[selectedValuesList.size()]));    
} 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{ 
列出selectedValuesList=jList1.getSelectedValuesList();
jList2.setListData(selectedValuesList.toArray(新字符串[selectedValuesList.size()]);
} 
你喜欢这样吗

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)     
{ 
    List<String> selectedValuesList = jList1.getSelectedValuesList();
    jList2.setListData(selectedValuesList.toArray(new String[selectedValuesList.size()]));    
} 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{ 
列出selectedValuesList=jList1.getSelectedValuesList();
jList2.setListData(selectedValuesList.toArray(新字符串[selectedValuesList.size()]);
} 
你喜欢这样吗

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)     
{ 
    List<String> selectedValuesList = jList1.getSelectedValuesList();
    jList2.setListData(selectedValuesList.toArray(new String[selectedValuesList.size()]));    
} 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{ 
列出selectedValuesList=jList1.getSelectedValuesList();
jList2.setListData(selectedValuesList.toArray(新字符串[selectedValuesList.size()]);
} 
你喜欢这样吗

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)     
{ 
    List<String> selectedValuesList = jList1.getSelectedValuesList();
    jList2.setListData(selectedValuesList.toArray(new String[selectedValuesList.size()]));    
} 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{ 
列出selectedValuesList=jList1.getSelectedValuesList();
jList2.setListData(selectedValuesList.toArray(新字符串[selectedValuesList.size()]);
} 

如果我正确理解了您的意图,您希望在按下按钮时将项目复制到
jList2
,避免重复,并保留先前复制的项目。假设
jList2
使用
DefaultListModel
,您可以检查它是否已经包含一个项目:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    DefaultListModel list = (DefaultListModel) jList2.getModel();

    for (Object sel : jList1.getSelectedValues()) {
        if (list.indexOf(sel) == -1) {
            list.addElement(sel);
        }
    }
}

(使用最新的java,您还应该使用泛型和
getSelectedValuesList()
)。

如果我正确理解您的意图,您希望在按下按钮时将项目复制到
jList2
,避免重复,并保留先前复制的项目。假设
jList2
使用
DefaultListModel
,您可以检查它是否已经包含一个项目:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    DefaultListModel list = (DefaultListModel) jList2.getModel();

    for (Object sel : jList1.getSelectedValues()) {
        if (list.indexOf(sel) == -1) {
            list.addElement(sel);
        }
    }
}

(使用最新的java,您还应该使用泛型和
getSelectedValuesList()
)。

如果我正确理解您的意图,您希望在按下按钮时将项目复制到
jList2
,避免重复,并保留先前复制的项目。假设
jList2
使用
DefaultListModel
,您可以检查它是否已经包含一个项目:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    DefaultListModel list = (DefaultListModel) jList2.getModel();

    for (Object sel : jList1.getSelectedValues()) {
        if (list.indexOf(sel) == -1) {
            list.addElement(sel);
        }
    }
}

(使用最新的java,您还应该使用泛型和
getSelectedValuesList()
)。

如果我正确理解您的意图,您希望在按下按钮时将项目复制到
jList2
,避免重复,并保留先前复制的项目。假设
jList2
使用
DefaultListModel
,您可以检查它是否已经包含一个项目:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    DefaultListModel list = (DefaultListModel) jList2.getModel();

    for (Object sel : jList1.getSelectedValues()) {
        if (list.indexOf(sel) == -1) {
            list.addElement(sel);
        }
    }
}

(使用最新的java,您还应该使用泛型和
getSelectedValuesList()
)。

我尝试这样做,,,但不起作用..出现错误,要求为java.swing.list添加导入。。当我导入它时,它说“java.swing.list不接受参数”,我放弃…@@@ASN请删除java.swing.list并导入这一个java.util.list,抱歉打扰您。。实际上我已经添加了(import javax.swing.JList;);然而它仍然不起作用。。即使我删除它并导入(java.util.List)。。。它在getSelectedValuesList()的第一行显示错误;感谢您的合作。@ASN
getSelectedValuesList()
已添加到java 7中,因此如果您使用较旧版本进行编译,则相应的方法是
getSelectedValues()
。注意不同的返回类型,数组而不是列表,因此需要修改。(但提供的解决方案不会保留以前复制的值,因此根据我的理解,将不是您想要的)。我尝试执行此操作,,,但不起作用..出现错误,要求为java.swing.list添加导入。。当我导入它时,它说“java.swing.list不接受参数”,我放弃…@@@ASN请删除java.swing.list并导入这一个java.util.list,抱歉打扰您。。实际上我已经添加了(import javax.swing.JList;);然而它仍然不起作用。。即使我删除它并导入(java.util.List)。。。它在getSelectedValuesList()的第一行显示错误;感谢您的合作。@ASN
getSelectedValuesList()
已添加到java 7中,因此如果您使用较旧版本进行编译,则相应的方法是
getSelectedValues()
。注意不同的返回类型,数组而不是列表,因此需要修改。(但提供的解决方案不会保留以前复制的值,因此根据我的理解,将不是您想要的)。我尝试执行此操作,,,但不起作用..出现错误,要求为java.swing.list添加导入。。当我导入它时