e785. 监听JList中项的变动

When the set of items in a list component is changed, a list data event is fired.

    // Create a list that allows adds and removes;
    // see e778 在JList中加入和删除项
    
    // Register a list data listener
    DefaultListModel model = (DefaultListModel)list.getModel();
    model.addListDataListener(new MyListDataListener());
    
    class MyListDataListener implements ListDataListener {
        // This method is called when new items have been added to the list
        public void intervalAdded(ListDataEvent evt) {
            DefaultListModel model = (DefaultListModel)evt.getSource();
    
            // Get range of new  items
            int start = evt.getIndex0();
            int end = evt.getIndex1();
            int count = end-start+1;
    
            // Get new items
            for (int i=start; i<=end; i++) {
                Object item = model.getElementAt(i);
            }
        }
    
        // This method is called when items have been removed from the list
        public void intervalRemoved(ListDataEvent evt) {
            // Get range of removed items
            int start = evt.getIndex0();
            int end = evt.getIndex1();
            int count = end-start+1;
    
            // The removed items are not available
        }
    
    
        // This method is called when items in the list are replaced
        public void contentsChanged(ListDataEvent evt) {
            DefaultListModel model = (DefaultListModel)evt.getSource();
    
            // Get range of changed items
            int start = evt.getIndex0();
            int end = evt.getIndex1();
            int count = end-start+1;
    
            // Get changed items
            for (int i=start; i<=end; i++) {
                Object item = model.getElementAt(i);
            }
        }
    }
Related Examples
原文地址:https://www.cnblogs.com/borter/p/9596135.html