The Objectdraw Library
Our approach to introducing programming using Java depends on a library we have designed which
provides:
- simplified support for handling mouse events,
- a collection of classes for displaying simple drawings that provides a more
object-oriented "look and feel" than the standard Java Graphics class, and
- facilities to simplify the management of multiple Threads.
In designing this library we were very conscious of the fact that the advantages
of using a library are offset by the disadvantage of hiding portions of "real Java"
from students. Accordingly, we carefully limited the scope of our library. The
event-handling features of our library are only used to enable students to work with
simple mouse events in the very first weeks of the course. After that, students are
introduced to standard Java GUI components and standard Java event handling. We use
our graphics classes throughout the course, but their design deliberately mimics
the methods provided by the standard Graphics class. Almost all of the Thread
management functions we provide are transparent to the students.
A
detailed description of the features of our objectdraw library
is available on our website in Javadoc format, and
in compressed form for download. See the
notes for information on converting from the older AWT version of
the library.
The current version of our library is available for download:
- Objectdraw version 1.1.1 jar file:
objectdraw.jar. Right-click (on Windows) or control click (on Mac) to
download the jar file. Save it as objectdraw.jar even if your browser attempts
to add a ".zip" suffix.
- When using newer versions of the objectdraw library (version 1.1 and
beyond), the static method Controller.getVersion() will return
a string describing which version of the library is being used.
Click below for instructions on how to
incorporate such a .jar file into a project created using a variety of Java IDE's.
To download a .rtf file of the instructions for a particular IDE, click on
the appropriate link. For those teaching AP CS courses, setting up your IDE
to use the objectdraw
library is exactly like setting it up to use the MBS library.
Information on using objectdraw from JCreator is available from Dave Wittry.
Using objectdraw with applications rather than applets
There is a simple way of using objectdraw with applications that is new with
version 1.1.1 of the objectdraw library. Under this version of objectdraw,
you can run extensions of WindowController (or Controller)
as applications by using a new method named startController.
This method is included in the Controller class (and thus is
inherited by WindowController).
To turn what would have
been an applet into a program that can also be run as an application, simply
add the following method to your class that extends Controller or
WindowController:
public static void main(String[] args) {
new MyClassName().startController(400,400);
}
In the above, MyClassName is a placeholder for the name of the class extending
Controller, while
the parameters (400,400) specify the size of the window desired.
Section 19.3 of the text explains how to write applications when using files,
and Appendix D.6 discusses how to modify applets to be run as applications in
standard Java. However, the advantage of the above method is that it requires the
least amount of change for using the programs included in the text. Thus
if your environment makes it difficult to run applets,
we highly recommend that you follow the technique explained above.