The Wmvc Thermometer Example:
Notes on Event Programming, GUIs, and
the Model-View-Controller (MVC) Architecture
UML for Wmvc Framework
     
Basics to build simple application:  
WmvcApp.java
Different views, implements Observer interface:  
WmvcView.java
Basic model/problem, extends Observable:  
WmvcModel.java
General purpose swing-based GUI:  
WmvcController.java
Support:  
WmvcExecutor.java
Menu Control:  
WmvcMenuItemCtl.java
Button Control:  
WmvcTBButtonCtl.java
UML for Thermometer App
The application (has main):  
Thermometer.java
Top level view/controller for the Thermometer:  
MainView.java
Different thermometer views (fahrenheit, celsius):  
TemperatureView.java
Actually has the temperature, "theTemp":  
ThermometerModel.java
The Wmvc Movie Catalog (MovieCat) Example:
The Wmvc Framework is the same as the Thermometer app.
From the Wmvc Thermometer example you will need all the Wmvc files:
WmvcApp.java, WmvcView.java, WmvcModel.java,
WmvcController.java, WmvcExecutor.java,
WmvcMenuItemCtl.java, WmvcTBButtonCtl.java
UML for MovieCat App
The application (has main):  
MovieCat.java
Top level view/controller for the MovieCat app:  
MainView.java
View of the movie list:  
MovieListView.java
View of a single item, the current movie:  
MovieItemView.java
Implements the movie model and handles changes:  
MovieModel.java
Defines and manipulates a Movie object (actual movie):  
Movie.java
Edits a Movie object:  
MovieEditor.java
Helper classes:
MovieEvaluation.java
MovieFormat.java
MovieGenre.java
MovieRating.java
Proxy Design Pattern Car Example:
Description and UML
The application (has main):  
CarProxyApp.java
Illustrates the proxy pattern:  
CarProxy.java
Panel that contains images:  
CarProxyPanel.java
Contains buttons:  
ControlPanel.java
Allows Images to be included:  
Image.java
Image subclass with the capability of moving right and left:  
Car.java
Controls the motion of a Mover object:  
MoveTimer.java
Controls the speed of some Accelerator object:  
SpeedButton.java
The standard Quit button:  
QuitButton.java
Extends Java's Rectangle2D and draw itself on a panel:  
SmartRectangle.java
Interfaces
Accelerator Interface:  
Accelerator.java
Mover Interface:  
Mover.java
Images
redCar:  
redCar.jpg
car2:  
car2.jpg
Reading examples:
Reading from a file: ReadFile.java
Reading from a file using classes and arrays:
ReadFile2.java
Reading from the keyboard:
ReadKeyboard.java
Pass by value vs. pass by reference:
Reference.java with output: output
Shows the order of initializing, new Init:
Init.java    
new Init2: Init2.java
The parent, SuperInit: SuperInit.java
, sample output: sample output
Demonstrate Exception handling:
Except.java with output: output
Fruit examples (inheritance):
Simple example, an array of Fruit:
MyFruit.java
Much better Fruit: FruitBetter.java
with output: output
Clone Fruit List: FruitCopy.java
with output: output
Applet example:
Using JApplet, java code:
WinApplet.java and the html file:
WinApplet.html
Using Applet, old way, java code:
SimpleTree.java
and the html file: SimpleTree.html
All the GUI examples:
The window handler, needed everywhere except WinBlank and WinImage1:
WinHandler.java
Make Blank Window: WinBlank.java
(to run: java WinBlank)
Puts all in one canvas (OLD WAY using awt):
WinImage1.java (to run: java WinImage1 file.gif)
Separates out WinHandler for reusability (OLD WAY using awt):
WinImage2.java (to run: java WinImage2 file.gif)
Demonstrates problem with swing images, waits before displaying:
WinImage3.java
(to run: java WinImage3 file.gif)
Fixes problem of WinImage3 using MediaTracker:
WinImage4.java
(to run: java WinImage4 file.gif)
Fixes WinImage3 problem also, using specialized problem, handles
simpler icon, not image: WinImage5.java
(to run: java WinImage5 file.gif)
Bunch of GUI stuff, e.g. buttons, menus, checkboxes:
WinMenus.java and
MyFrame.java
(to run: java WinMenus)
Allows you to display text, can scroll, but not save changes:
WinEdit.java
(to run: java WinEdit file.txt)
Combines WinImage5 and WinEdit in two tabs,
image one tab, text other tab:
WinTabbed.java
(to run: java WinTabbed file1.gif file2.txt)
Display several images in the same window (hardcoded in main; these are fruits,
but any will do):
FruitImages.java
Overlay two images, first each image is shown separately,
then the smaller image is displayed on top:
OverlayImages.java
Roulette Table Example:
File containing main:  
Roulette.java
File containing the table GUI:  
RouletteGui.java
Encapsulates position for Absolute positioning of components:  
AbsoluteConstraints.java
Allow placement of components in absolute positions:  
AbsoluteLayout.java
The GIF files used in the application:  
five.gif
rouletteTableFinal.gif
clearChip.gif