Simple Enough For Students

Powerful Enough For Professionals

NSF Acknowledgment and Disclaimer

This material is based upon work supported by the National Science Foundation under Grant No. DUE-9950829.

Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).

Updated on September 12, 2006

JPT 2.5.0 is almost 100% compatible with JPT 2.4.0 but not quite. One of the key forces leading to this release was the desire to permit a user to define simple functions in the JPT interactive parser as well as well as to enable variable definitions that may be either persistant or temporary. This required refactoring of the parser classes and renaming of the old AbstractParser class to be BasePaser, a class that is no longer abstract. All algorithmic code migrated down to BasePaser from class JPTParser. The purpose of JPTParser is now to define built-in functions, operations, and constants. A new exponentiation operator denoted by a caret has been added to class JPTParser.

The class SimpleFunctionBuilder defines a GUI that permits a user to define simple functions interactively and immediately test them in an expression evaluation pane. The class SimpleFunctionBuilderWithIO adds the ability to save simple function definitions to disk so that these definitions may be later recalled for use in interative expression evaluation.


The Java Power Tools enable the rapid development of Java graphical user interfaces with automatic error checking of all user input. By systematic abstraction (extreme encapsulation) that brings the central issues of GUI building to the forefront and hides all details that are purely technical, the Java Power Tools permit small GUIs to be built in minutes and large GUIs in an hour or so. These tools are particulary useful for faculty and students who wish to use GUIs but do not wish to spend a great deal of time on their creation. In recent enhancements to the tools, users may also paint shapes, images, and text with ease.

The Java Power Tools include the Java Power Framework that enables both instant experimentation and systematic testing. The JPF is so easy to use that freshman students may build simple experiments in the first weeks of a course. The JPF is also powerful enough that it scales to testing of large systems with both textual and graphical output and complex user interaction.

The Java Power Tools are 100% open source and may be used as a model of object-oriented design in upper level OO design courses.

Java Power Tools Resources: Library, Source, API

The Java Power Tools Library jpt.jar

Download the JPT Library: jpt.jar

Download the jpt.jar installation notes jpt_jar_readme.doc in Microsoft Word format.

Download the jpt.jar installation notes jpt_jar_readme.pdf in Adobe PDF format.

Download jpt.jar and the installation notes in zip format

Download jpt.jar and the installation notes in self-extracting exe format

The Java Power Tools Source Files

Access the Annotated Java Power Tools Source Files online (strongly recommended)

Access the Alphabetical Java Power Tools Source Files online

Download all Java Power Tools Source Files in zip format

Download all Java Power Tools Source Files in self-extracting exe format

The Java Power Tools API Documentation

Access the Java Power Tools API documentation online

Download the Java Power Tools API documentation in zip format

Download the Java Power Tools API documentation in self-extracting exe format

The SUN Java API Documentation

Access the SUN Java 1.5.0 API Documentation online

Access the SUN Java 1.4.2 API Documentation online

The Java Power Framework

The Java Power Framework or JPF is designed to permit instant “experiments” using small methods, quick unit tests of individual classes, systematic integration tests of families of classes, and full tests of entire applications. A detailed discussion of how to use the JPF is presented with the annotated description of the JPF Source Files. In brief, the key idea is that the user can enter certain public methods into a class that extends JPF and these methods will automatically generate buttons in the JPF Button Panel that call the corresponding methods when clicked. In this way, it is possible to create tests and execute them almost instantly.

The Java Power Framework may be integrated with the support class LookAndFeelTools to enable setting the look and feel immediately prior to opening the JPF Button Panel. This permits an instructor to automatically adjust the sizes of the fonts used by Java so that they become large enough for classroom presentation.

The following class shows a typical “starter class” for use with the JPF. This class has a large number of useful imports so that a student need not waste time searchng for a necessary import. The class also has several comments that are useful for a beginner but may be detailed by a more experienced user.

The JPF “starter class”

The structure of the central portion of the starter code in is as follows with comments removed:

    public class Methods extends JPF 
        public static void main(String[] args) {
            new Methods();
        // place methods and data below

The critical issue is that Methods extends JPF and that the constructor call, new Methods(), automatically calls the default constructor for the JPF class which does all of the magic. The JPF constructor scans the Methods class looking for what we call simple public methods. By simple we mean methods whose parameters and return value may be expressed using one-line strings that are simple enough to be typed in by the user. For such methods, the JPF constructor automatically creates a button in its GUI (which is also created automatically) and the button executes its associated method. If the method has no arguments and void return it is simply executed. If the method has arguments and/or a return value, then JPF will automatically generate an auxiliary panel as needed to handle the user interaction.

See the notes in the JPF Source Files documentation for further details.

JPT in Eclipse

Access detailed instructions for setting up JPT in Eclipse here. Numerous screen snapshots are provided as slide shows.

Demonstration Programs

The Shape Editor Demo.

New demonstration programs will be added to this site as time permits. Older demos may be found by following the links to the older versions of JPT.

We teach a 1 SH course Freshman Honors Seminar that has many simple demos of how to use the Java Power Tools.

Contact Information

The Java Power Tools team:

Name E-mail Telephone
Richard Rasala 617-373-2206
Viera Proulx 617-373-2225

To send e-mail to the Java Power Tools team, use:

Our postal address and fax number are given below:

College of Computer & Information Science
Northeastern University
Boston, MA 02115 USA
Fax: 617-373-5121