2010-07-16 16 views
5

में एक सरणी को ताज़ा करना ठीक है तो मेरे पास एक जेएलिस्ट है और सामग्री को सरणी के साथ प्रदान किया जाता है। मुझे पता है कि सरणी में तत्व कैसे जोड़ना है, लेकिन मैं जानना चाहता हूं कि जेएलिस्ट को रीफ्रेश कैसे करें ... या यह भी संभव है? मैंने Google की कोशिश की। : \जावा jlist

import java.applet.Applet; 
import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 


public class bs extends JApplet implements MouseListener { 

public static String newline; 
public static JList list; 

    public void init() { 



      String[] data = {"one", "two", "three", "four"}; 
       list = new JList(data); 



     this.getContentPane().add(list); 

     list.addMouseListener(this); 

     String newline = "\n"; 

     list.setVisible(true); 

    } 

    public void refresh(){ 
     Address found; 
     this.listModel.clear(); 

     int numItems = this.getAddressBookSize(); 
     String[] a = new String[numItems]; 
     for (int i=0;i<numItems;i++){ 
      found = (Address)Addresses.get(i); 
      a[i] = found.getName(); 
     } 
     /* attempt to sort the array */ 
     Arrays.sort(a, String.CASE_INSENSITIVE_ORDER); 
     for (int i=0;i<numItems;i++) { 
      this.listModel.addElement(a[i]); 
     } 
    } 



    public void mousePressed(MouseEvent e) { } 

    public void mouseReleased(MouseEvent e) { 
     Object index = list.getSelectedValue(); 
     System.out.println("You clicked on: " + index); 
    } 

    public void mouseEntered(MouseEvent e) { } 

    public void mouseExited(MouseEvent e) { } 

    public void mouseClicked(MouseEvent e) { } 




    public void paint(Graphics g) { 

    } 
} 

कोई विचार?

धन्यवाद।

class MyModel extends AbstractListModel { 
    private String[] items; 

    public MyModel(String[] items) { 
     this.items = items; 
    } 

    @Override 
    public Object getElementAt(int index) { 
     return items[index]; 
    } 

    @Override 
    public int getSize() { 
     return items.length; 
    } 

    public void update() { 
     this.fireContentsChanged(this, 0, items.length - 1); 
    } 
} 

आइटम छँटाई के बाद, बस update फोन:

उत्तर

7

एक अच्छा तरीका है आपके लिए डेटा प्रबंधित करने और अपडेट को संभालने के लिए ListModel बनाने का एक अच्छा तरीका है।

कुछ की तरह:

DefaultListModel listModel=new DefaultListModel(); 
for (int i=0; i<data.length; i++) { 
    listModel.addElement(data[i]); 
} 
list=new JList(listModel); 

तो फिर तुम बस सूची मॉडल के माध्यम से परिवर्तन कर सकते हैं जैसे कि

listModel.addElement("New item"); 
listModel.removeElementAt(1); // remove the element at position 1 
6

तुम सिर्फ अपने खुद के ListModel भी देनी होगी।

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