This page is optimized for mobile devices, if you would prefer the desktop version just click here

3.2 Java1492-plotting large quantities of data using java  (Page 12/27)

(A different overloaded version, which I will discuss later, accepts a title string only and sets all of the plotting parameters to defaultvalues.)

Listing 6. The first overloaded constructor.
PlotALot01(String title,//Frame title int frameWidth,//in pixelsint frameHeight,//in pixels int traceSpacing,//in pixelsint sampSpace,//in pixels per sample int ovalWidth,//sample marker widthint ovalHeight)//sample marker hite {//constructor code continues here

Listing 6 shows the signature for this overloaded version of the constructor. The comments should make the code self explanatory.

Save the parameter values

With one exception, the code in Listing 7 simply saves the incoming parameter values in instance variables to make those values available to other members ofthe class.

Listing 7. Save the parameter values.
this.title = title; this.frameWidth = frameWidth;this.frameHeight = frameHeight; this.traceSpacing = traceSpacing;//Convert to pixels between samples. this.sampSpacing = sampSpace - 1;this.ovalWidth = ovalWidth; this.ovalHeight = ovalHeight;

The exception

The exception has to do with the parameter named sampSpace . This parameter is provided by the user in units of pixels per sample, becausethat seems to be the most natural way for a human to specify this plotting parameter. However, for computational purposes, it is better to have the valueof the number of pixels between samples, which is one less than the number of pixels per sample. This conversion is made during the saving of this parameterin Listing 7 .

A temporary Page object

As you will see later, the Page class consists of a Canvas contained in an AWT Frame . Because an AWT Frame takes on the look and feel of the operating system under which the program is running, it may be constructed differently under differentoperating systems. Many important plotting parameters depend on the size of the Canvas , which depends on the values of the insets (border width) for the Frame for that particular operating system.

(A good exercise would be for you to convert this class to Swing using a look and feel that is independent of the operating system.)

The code in Listing 8 instantiates a temporary Page object solely for the purpose of obtaining information about the width and the height of the Canvas object. This information is used later to compute a variety of other importantparameter values.

Listing 8. A temporary Page object.
Page tempPage = new Page(title);int canvasWidth = tempPage.canvas.getWidth(); int canvasHeight =tempPage.canvas.getHeight();

Display some information

Listing 9 gets and displays information about the plotting object on the command line screen. An example of thisoutput was shown earlier.

Listing 9. Display some information.
//Display information about this plotting // object.System.out.println("\nTitle: " + title); System.out.println("Frame width: " + tempPage.getWidth()); System.out.println("Frame height: " + tempPage.getHeight()); System.out.println("Page width: " + canvasWidth); System.out.println("Page height: " + canvasHeight); System.out.println("Trace spacing: " + traceSpacing); System.out.println("Sample spacing: " + (sampSpacing + 1)); if(sampSpacing<0){ System.out.println("Terminating");System.exit(0); }//end if
<< Chapter < Page Page > Chapter >>

Read also:

OpenStax, Digital signal processing - dsp. OpenStax CNX. Jan 06, 2016 Download for free at https://legacy.cnx.org/content/col11642/1.38
Google Play and the Google Play logo are trademarks of Google Inc.
Jobilize.com uses cookies to ensure that you get the best experience. By continuing to use Jobilize.com web-site, you agree to the Terms of Use and Privacy Policy.