2011-03-06 14 views
8

नमस्ते मुझे किसी जेएलिस्ट से दूसरे तत्व में एक तत्व चुनना है, इसे पहले से हटा देना है जिस विधि को मैंने बनाया है, केवल एक तत्व डालें, अंतिम को ओवरराइट करना और चयनित आइटम को नहीं हटाएं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) { 
    } 

पहली JList यहाँ से कोड है 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()); 

है आप एक तत्व जोड़ रहा है और इसे तुरंत हटा रहा है क्योंकि ऑपरेशन जोड़ने और निकालने के लिए दोनों एक ही सूची मॉडल हैं।

प्रयास करें

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

+0

@Franky ठीक। मैंने इसे थोड़ा संपादित किया है। इसे इस्तेमाल करे। –

+0

अभी भी सम्मिलित तत्व को ओवरराइट करना :( – Franky

10

एक JList स्पष्ट करने के लिए सबसे अच्छा और आसान तरीका है:

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

यह सूची मॉडल को प्रतिस्थापित करेगा, जो वांछित नहीं हो सकता है। – dmolony

+1

@dmoloney उपरोक्त टिप्पणी के अनुसार, उन्होंने कहा था ... "एक JLIST को साफ़ करने के लिए"। यह समाधान बस यही करता है। – Menefee

संबंधित मुद्दे