Java tutorial
import java.awt.BorderLayout; import javax.swing.DefaultListModel; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.event.ListDataEvent; import javax.swing.event.ListDataListener; class MyListDataListener implements ListDataListener { public void contentsChanged(ListDataEvent e) { System.out.println("contentsChanged: " + e.getIndex0() + ", " + e.getIndex1()); } public void intervalAdded(ListDataEvent e) { System.out.println("intervalAdded: " + e.getIndex0() + ", " + e.getIndex1()); } public void intervalRemoved(ListDataEvent e) { System.out.println("intervalRemoved: " + e.getIndex0() + ", " + e.getIndex1()); } } public class UsingListDataListener { static String labels[] = { "A", "B", "C", "D", "E", "F", "G" }; public static void main(String args[]) { JFrame frame = new JFrame("Modifying Model"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Fill model final DefaultListModel model = new DefaultListModel(); model.addListDataListener(new MyListDataListener()); for (int i = 0, n = labels.length; i < n; i++) { model.addElement(labels[i]); } JList jlist = new JList(model); JScrollPane scrollPane1 = new JScrollPane(jlist); frame.add(scrollPane1, BorderLayout.CENTER); frame.setSize(640, 300); frame.setVisible(true); } }