Contains
  - simple directory
    Our first GUI - just one button in a window
    - FrameWithButton.java: the button in its wondow
    - SimpleButtonListener.java: repsonds to button presses
  - temp directory
    The original temperature conversion program
    - TempConversionGUI.java: the GUI for the program
    - CompCentBtnLstnr.java: responds to requests to convert F to C
    - CompFahrBtnLstnr.java: responds to requests to convert C to F
    - GenericWindowLstnr.java: responds to requests to close the window
  - tempv1
    The first revision of the temperature conversion program (using a 
    superclass to make it easier to define the window listener)
    - TempConversionGUI.java: the GUI for the program
    - CompCentBtnLstnr.java: responds to requests to convert F to C
    - CompFahrBtnLstnr.java: responds to requests to convert C to F
    - GenericWindowLstnr.java: responds to requests to close the window
  - tempv2
    The second revision of the temperature conversion program (using an
    anonymous class to define the window listener)
    - TempConversionGUI.java: the GUI for the program
    - CompCentBtnLstnr.java: responds to requests to convert F to C
    - CompFahrBtnLstnr.java: responds to requests to convert C to F
  - tempv3
    The third revision of the temperature conversion program (combining
    the listeners)
    - TempConversionGUI.java: the GUI for the program
    - CompTempBtnLstnr.java: responds to requests to convert temperatures
  - tempv4
    The fourth revision of the temperature conversion program (making
    the GUI its own listener)
    - TempConversionGUI.java: the GUI for the program
  - mvc directory
    A program that displays a textfield and a slidebar in different windows
    and uses MVC to keep them `in step'
    - Model.java: where the data is kept
    - Sequence.java: an interface that says what it means to be a list
    - SinglyLinkedList.java: a class that implements the Sequence interface
      (used in this program so the model can hold a list of its views)
    - View1.java: the slider
    - View2.java: the textfield
    - IView.java: an interface that specifies what it means to be a GUI
      in this program
    - Controller1.java: responds to events in View1
    - Controller2.java: responds to events in View2
    - Main.java: the main method is herein
  - color directory
    - AColorChooser.java: a program that brings up a Swing color chooser
  - jlists directory
    Programs that illustrate Swing's JList component (and its MVC)
    - SimplestList.java: a non-updateable JList
    - UpdateableList.java: an updateable JList (changes to the data
      strcuture are reflected on the screen)
    - CustomisedList.java: another updateable JList with additional
      response to data structure updates
  - till directory
    - Till.java: the till (model)
    - TillGUI.java: the till GUI (view)
    - AnotherTillGUI.java: another till GUI (another view)
    - ITillGUI.java: an interface that specifies what it means to be a GUI
      for a till
    - TillController.java: responds to major till events
    - TillMain.java: the main method
  - burger directory
    - AbstractDish.java: superclass of the dishes the burger bar sells
    - AddItemToOrderListener.java: a listener class for responding to events
      when users want to add a dish to their order
    - Burger.java: subclass of AbstractDish
    - BurgerBar.java: the main burger bar class
    - BurgerBarGUI.java: a burger bar's GUI
    - BurgerBarTillGUI.java: the till part of a burger bar GUI
    - Drink.java: subclass of AbstractDish
    - ITillGUI.java: an interface that specifies what it means to be a till GUI
    - SideDish.java subclass of AbstractDish
    - Till.java: a till class