With all the changes in place, you have the
following definition of the MovieApplication
class:
import javax.swing.*; import java.awt.event.*; import java.util.*; public class MovieApplication extends JApplet { // Declare instance variables: private Meter meter; private Movie movie; // Define constructor public MovieApplication () { // Create model getMovie(); // Create and connect view to application getContentPane().add("Center", getMeter()); } // Define getters and setters public Meter getMeter () { if (meter == null) {setMeter(new Meter(0, 30));} return meter; } public Movie getMovie () { if(movie == null) {setMovie(new Movie (10, 10, 10, "On to Java"));} return movie; } public void setMeter (Meter m) { meter = m; meter.addMouseListener(new MeterListener(this)); } 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(); } } }