<< Chapter < Page | Chapter >> Page > |
(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.
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 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 .
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(); |
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 |
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?