Eso tiene una solución la que todo programador promedio aria la mas común pero con el defecto de que no es java.util.list ni tampoco es type safe pero a su ves la mas fácil y la que no requiere librerías externas
Pues simplemente usa la clase defaultListModel
1 DefaultListModel model = new DefaultListModel();
2 list = new JList(model);
3 for (int i = 0; i < 15; i++)
model.addElement("Element " + i);
1 se crea un defaultlistmodel a partir de ahora llamado modelo esta es una lista que avisa a los cambios al jlist (la vista)
2 se crea un jlist que use la lista que creamos
3 ahora puedes modificar el modelo a tu antojo y mejicamente (la realidad es que deberías preguntarte como lo hace pero generalmente a nadie le importa conocer bien y a profundidad como funcionan las cosas) se actualizara en el formulario
-en primer lugar cuando un objeto avisa al resto de su estado para que se actualicen ese objeto es observable puedes conseguir ese mismo efecto de muchas formas la mas general es usando el patron observador
-te aviso que es una de las tantas cosas por la que swing apesta(esta es una de las menos graves) es por que no tiene una implementación de java.util.list que sea observable es decir que haga lo que tu dices
No dudes en preguntar criticar agradecer maletear o comenzar un flame si es necesario pero responde