JList AbstractListModel - fireIntervalAdded & AutoScroll al nuevo elemento

Soy relativamente nuevo en Java, y especialmente en swing. Desarrollo con Netbeans 6.8.

Tengo una JList que usa un AbstractListModel personalizado. Este AbstractListModel rastrea los cambios en los datos de una base de datos y llama a fireIntervalAdded cuando se agrega un nuevo elemento a la lista. Esto funciona perfectamente

El problema que tengo es que me gustaría que JList (o JScrollPane) se desplace automáticamente al nuevo elemento de la lista. He leído que podría usar JList.ensureIndexIsVisible, pero no sé cómo obtener la referencia a la instancia de JList desde su ListModel asociado (ya que estoy activando el 'fireIntervalAdded' desde ListModel).

Para explicar un poco, he creado un sondeo dentro de ListModel para sondear nuevos datos de un servidor SQL. Dado que considero el ListModel como el "origen de datos" de la lista, tuvo sentido colocar la lógica de recuperación de datos (y sondeo en mi caso) dentro de este ListModel. Los tutoriales no parecen cubrir esta necesidad específica de control de desplazamiento desde el propio modelo (lo cual tiene sentido ya que ListModel podría usarse en varias listas J a la vez .....)

¿Qué puedo hacer para que la JList se desplace al último elemento creado desde el código ListModel?

Además, imagino que podría solucionar mi problema si pudiera encontrar un evento en la JList que se dispararía cuando se agrega un nuevo elemento, ¡pero no he encontrado ninguno!

Gracias

- EDITAR -

Ok, basándome en la respuesta de MadProgrammer, esto es lo que construí:

public class JListDataListener implements ListDataListener {
    JList _listToControl = null;
    public JListDataListener(JList listToControl) {
        this._listToControl = listToControl;
        this._listToControl.getModel().addListDataListener(this);
    }

    public void intervalAdded(final ListDataEvent e) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
                            public void run() {
                                _listToControl.ensureIndexIsVisible(e.getIndex1() + 1);
                            }
                        });
    }

    public void intervalRemoved(ListDataEvent e) {
        //throw new UnsupportedOperationException("Not supported yet.");
    }

    public void contentsChanged(ListDataEvent e) {
        //throw new UnsupportedOperationException("Not supported yet.");
    }
}
Respuesta 1

Este puede ser un problema simple que se ha preguntado antes, pero ni siquiera sé qué buscaría para encontrar la solución, por lo que voy a preguntarlo aquí. Tengo 4 ImageView que tienen todos lo mismo ...

¡Tengo un problema extraño con la codificación URI incorrecta y agradecería cualquier ayuda! El proyecto usa JSP, Servlets, Jquery, Tomcat 6. El juego de caracteres en los JSP se establece en UTF-8, todos los conectores Tomcat usan ...

Nuestro proyecto usa Websphere, y tenemos que configurar la "información del cliente" usando WSConnection. La base de datos DB2 los utiliza para auditar. Y eso funciona bien en Websphere. Sin embargo, queremos usar el ...

Estoy tratando de ejecutar HBase importTSV hadoop job para cargar datos en HBase desde un archivo TSV. Estoy usando el siguiente código. Configuración config = nueva Configuración (); Iterator iter = config ....