Hola:
Lo primero es saber (o decidir) cómo te vas a enterar que se ha creado el archivo.
Si el archivo se crea desde fuera del programa, alguien debe avisar al programa de alguna manera (por ejemplo, con un botón que diga "refrescar lista").
Otra opción es que la lista revise periódicamente (por ejemplo, cada 10 segundos) los ficheros para ver si hay alguno nuevo. Echa un ojo a las clase Timer.
Si el archivo se crea desde el mismo programa (con algún botón de "crear archivo", entonces ese mismo botón, además de crear el archivo, puede decirle a la lista que se refresque.
Lo del Observer es una implementación elegante del problema, pero no te lo resuelve. El Observer avisa a la lista de que debe refrescarse... pero ¿cómo se entera el Observer de que hay un nuevo fichero?
En fin, según lo que necesites hay muchas opciones.
Se buena.