The Objectdraw Library

Our approach to introducing programming using Java depends on a library we have designed which provides: 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:

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.