JList添加/删除项目

嗨我必须从JList中选择一个元素到另一个,从第一个中删除它我创建的方法只插入一个元素,覆盖最后一个元素并且不从第一个JList中删除所选项目这里是代码:

第一个清单

private javax.swing.JList listaRosa; 

填充此方法:

 private void visualizzaRosaButtonvisualizzaRosa(java.awt.event.ActionEvent evt) { // TODO add your handling code here: visualizzaSquadraSelezionata(); String fileSquadra; fileSquadra = squadraDaVisualizzare.getText(); DefaultListModel listModel = new DefaultListModel(); try { FileInputStream fstream = new FileInputStream("C:/Users/Franky/Documents/NetBeansProjects/JavaApplication5/src/javaapplication5/Rose/"+fileSquadra+""); // Get the object of DataInputStream DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; //Read File Line By Line while ((strLine = br.readLine()) != null) { listModel.addElement(strLine); System.out.println(strLine); } listaRosa.setModel(listModel); //Close the input stream in.close(); } catch (Exception e) { } 

第二个列表,我要插入从第一个中删除的项目:

 private javax.swing.JList listaTitolari 

这是NOT工作代码:

 private void aggiungiTitolareButtonActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: DefaultListModel listModel = new DefaultListModel(); String daInserire; listModel.addElement(listaRosa.getSelectedValue()); listModel.removeElement(listaRosa.getSelectedValue()); listaTitolari.setModel(listModel); } 

谢谢

问题是

 listModel.addElement(listaRosa.getSelectedValue()); listModel.removeElement(listaRosa.getSelectedValue()); 

您可能正在添加一个元素并立即删除它,因为添加和删除操作都在同一个listModel上。

尝试

 private void aggiungiTitolareButtonActionPerformed(java.awt.event.ActionEvent evt) { DefaultListModel lm2 = (DefaultListModel) listaTitolari.getModel(); DefaultListModel lm1 = (DefaultListModel) listaRosa.getModel(); if(lm2 == null) { lm2 = new DefaultListModel(); listaTitolari.setModel(lm2); } lm2.addElement(listaTitolari.getSelectedValue()); lm1.removeElement(listaTitolari.getSelectedValue()); } 

清除JLIST的最佳和最简单的方法是:

 myJlist.setListData(new String[0]);