import javax.swing.JFrame; public abstract class View extends JFrame implements ModelListener { protected Model m; protected T c; public View(Model m, T c) { this.m = m; this.c = c; m.addListener(this); setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { c.shutdown(); } }); } @Override public abstract void update(); }