GrRecorder (or Graph Recorder Component) is an AWT based GUI Java Bean that displays a live graph of time-variable analog values. It simulates some graph-display laboratory instruments such as an oscilloscope or a chart recorder but it is much more powerful and flexible.
Moreover, it is a freeware component that can be used even in a commercial environment as long as it follows the LGPL license terms. Use it at your own risk.
Note: Some of you might remember that this component was available since 1997 but was discontinued about a year ago. Here it is again, slightly improved, with a much better-designed tester application.
The GrRecorder Bean
- Analog* trace(s)
Note *: double precision floating point values
- Can display many simultaneous traces from LIVE data
- Adjustable trace resolution (the number of visible data points); default value is 256 points
- Each trace can be shifted value-wise
- Each trace and its zero reference can have its own distinctive color
- Visible analog range of the display surface is 1.0
- All traces are "time" shifted simultaneously through the step() method
- Discreet unobtrusive copyright notice: The notice is displayed at the beginning of a session of use (either in an application, or in a GUI builder environment). It disappears as soon as its display is refreshed.
- Adjustable grid display; default value is 5 by 4 grids
- Available framed message display within the component; its position may be changed with the mouse
- A color can be assigned for the grid and framed message
- Adjustable and mouse-selectable cursors (A value cursor and a time cursor)
- A color can be assigned for the cursors
- AWT based GUI Java Bean, it is known as a heavyweight component and has some compatibility problems with Java-Swing-based applications. However, these problems can be avoided easily (See Bugs and Limitations section below).
The GrRecorder Tester Application
An application that proves that an AWT-based GrRecorder component can be integrated with Java Swing components
- Open source; you can modify it for any use
- Can display one or two traces
- Each trace displays 250 data points
- Each trace is associated with a Java object that implements a grecorder.ValueReadable interface; the main function is to provide a getVal() method that returns a time-dependent floating-point value
- Contains four Java classes that implement the ValueReadable interface; two of them are already specified on editable text fields of the tester application (identified with the labels: Class1 and Class2 respectively).
- You can easily create your own Java class that implements ValueReadable, and integrate it with the GrRecorder tester, simply by entering the full class path name of your Java class into either the Class1 or Class2 text field.
- Internal timer that periodically calls the getVal() method at a constant rate selectable between 50 msec and 10000 msec (default value of 100 msec)
- Sliders that can adjust the vertical position of traces (one slider is reassigned for generating values if the Class1 text field is empty).
- Easy interface with just one Start/Stop button.
GrRecorder Java Bean display with two traces, and enabled 5x4 grid and cursors
GrRecorder Tester application with its default text field values
- The traces are in orange and pink.
- The zero reference of each trace is yellow.
- The grid (and framed message) are green.
- The value cursor (horizontal cursor) is red.
- The time cursor (vertical cursor) is highlighted in white, normally it is red.
Note: You can change these colors if you like.
Java 1.3 or newer
Unzip the grectst.zip into any directory of your choice.
This is it!
Double-click the grectst.jar file to start the tester application.
For developers: Copy the bigfeet.jar file into a library directory of your IDE Java development system. Follow the instructions from your IDE documentation.
19970422 Version 1.0 beta
- The Java Bean was released in the older ZIP format (instead of the JAR format) and encrypted
- It displayed a Nag dialog at the beginning of a session
020923 Version 1.1. release
- Repackaged in a JAR file with the GrRecorder icons, and with the BeanInfo class expanded and improved
- Some very minor API change
- Discreet unobtrusive copyright notice
Version 1.1 release
The GrRecorder Bean is based on Java AWT classes (a.k.a. "heavy" components), this imposes some constraints when using it with Java Swing components (See the Sun's article about mixing AWT with Swing components). For example, if you create your own Java-Swing-based Java application using the GrRecorder Bean, avoid using drop-down menu components on the same frame, because they will be hidden behind that Bean. This is why the GrRecorder Tester has menu items only on the menu bar itself.
Plans and Wishes
As with any product, there is room for improvement and supplemental features. For future versions of the GrRecorder Java Bean:
- Convert GrRecorder into a "lighweight" Java-Swing-based version
Marcel St-Amant firstname.lastname@example.org