Home Segments Top Top Previous Next

932: Mainline

Now, with the listener defined, you can modify the applet defined in Segment 872, inserting a form and form-listening augmentations:

import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class MovieApplication extends JApplet {
 // Declare instance variables:
 private Meter meter;
 private JList jList;
 private Poster poster;
 private RatingPanel form;                                      
 private Movie movie;
 private MovieData movieData;
 // Define constructor
 public MovieApplication() {
  // Create models
  getMovie();
  getMovieData();
  // Create and connect views to application
  getContentPane().add("West", getMeter());
  getContentPane().add("East", new JScrollPane(getJList()));
  getContentPane().add("Center", getPoster());
  getContentPane().add("South", getForm());                     
 }
 // Define getters and setters
 public Meter getMeter () {
  if (meter == null) {setMeter(new Meter(0, 30));}
  return meter;
 }
 public JList getJList () {
  if (jList == null) {setJList(new JList());}
  return jList;
 }
 public Movie getMovie () {
  if(movie == null) {setMovie(new Movie (10, 10, 10, "On to Java"));}
  return movie;
 }
 public MovieData getMovieData () {
  if(movieData == null) {setMovieData(new MovieData ());}
  return movieData;
 }
 public Poster getPoster () {
  if (poster == null) {setPoster(new Poster());}
  return poster;
 }
 public RatingPanel getForm () {                                
  if (form == null) {                                           
   setForm(new RatingPanel("Script", "Acting", "Direction"));   
  }                                                             
  return form;                                                  
 }                                                              
 public void setMeter (Meter m) {
  meter = m;
 }
 public void setMovieData (MovieData m) {
  movieData = m;
  movieData.addObserver(new MovieDataObserver(this));
  movieData.changed();
 }
 public void setMovie (Movie m) {
  if(movie == m) {return;}
  if(movie instanceof Movie) {movie.deleteObservers();}
  if(m instanceof Movie) {
   movie = m;
   movie.addObserver(new MovieObserver(this));
   movie.changed();
  }
 }
 public void setJList (JList j) {
  jList = j;
  jList.addListSelectionListener(new MovieListListener(this));
 }
 public void setPoster (Poster p) {
  poster = p;
 }
 public void setForm (RatingPanel f) {                           
  form = f;                                                      
  form.addPropertyChangeListener(new RatingPanelListener(this)); 
 }                                                               
}