2011-03-06 87 views
8

您好我不得不从一个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) { 
    } 

在S的Econd列表,在这里我想插入项目从第一除去:

private javax.swing.JList listaTitolari 

这里是不工作代码:

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); 
} 

感谢

回答

16

问题是

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());   
} 
+0

它从第一去除,但覆盖的二列表.... – Franky 2011-03-06 20:09:25

+0

@Franky确定。我已经稍微编辑了一下。尝试这个。 – 2011-03-06 20:11:56

+0

仍然支持插入元素:( – Franky 2011-03-06 20:23:26

10

清除一个JList最好的和最简单的方法是:

myJlist.setListData(new String[0]); 
+1

这将替换的ListModel,这可能是不希望每注释 – dmolony 2013-02-08 05:17:10

+1

@dmoloney以上,他们也说:“......以清除一个JList。”该解决方案实现了这一点。 – Menefee 2013-05-15 00:03:48