Next, you must wire together your new model, an instance of
MovieData
, and your new view, an instance of JList
.
To begin, you define an observer. When activated, the observer fetches the
vector of movies from the model, generates a vector of strings from the
titles in the vector of movies, and relays the vector of strings to the
choice list. The choice list setter, setListData
, conveniently
takes as its argument a vector of strings.
import java.util.*; import javax.swing.*; public class MovieDataObserver implements Observer { private MovieApplication applet; public MovieDataObserver (MovieApplication a) { applet = a; } public void update (Observable observable, Object object) { Vector titles = new Vector(); for (Iterator i = applet.getMovieData().getMovieVector().iterator(); i.hasNext();) { Movie movie = (Movie) (i.next()); titles.add(movie.getTitle()); } applet.getJList().setListData(titles); } }