<< Chapter < Page | Chapter >> Page > |
The class begins by creating two different array objects in which incoming data is stored instead of just one array object. These are the objects that arepopulated by the putData method in Listing 29 .
The modified version of the overridden paint method begins in Listing 31 . Most of the code was deleted for brevity from Listing 31 because it is very similar to the code in the overridden paint method in the class namedPlotALot01.
Listing 31. Beginning of the overridden paint method. |
---|
public void paint(Graphics g){
//Draw horizontal axes//... code deleted for brevity//Plot the points.
if(sampleCounter>0){
for(int cnt = 0;cnt<= sampleCounter;
cnt++){//Compute a vertical offset.
//...code deleted for brevity//Begin by plotting the values from
// the blackData array object.//Draw an oval.
g.setColor(Color.BLACK);//...code deleted for brevity//Connect the sample values with
// straight lines.//...code deleted for brevity |
The most significant thing in Listing 31 is the call to the setColor method of the Graphics class to set the drawing color to black. Otherwise, the code is essentially the same as the code in the overridden paint method in PlotALot01 . The code in Listing 31 draws the black traces shown in Figure 2 .
The overridden version of the paint method continues in Listing 32 . The code in Listing 32 is essentially all new code that was created to plot the second data set in red. However, the only real difference betweenthis code and code that I explained earlier with respect to the class named PlotALot01 is:
Otherwise, this code is essentially the same as the code that was used to plot the single data set in the overridden paint method in the class named PlotALot01 .
Listing 32. New code in the overridden paint method. |
---|
//Now plot the data stored in the
// redData array object.g.setColor(Color.RED);
//Draw the ovals as described above.g.drawOval(cnt*(sampSpacing + 1)%
this.getWidth() - ovalWidth/2,yOffset - (int)redData[cnt]- ovalHeight/2,
ovalWidth,ovalHeight);//Connect the sample values with
// straight lines as described above.if(cnt*(sampSpacing + 1)%
this.getWidth()>=
sampSpacing + 1){g.drawLine(
(cnt - 1)*(sampSpacing + 1)%this.getWidth(),
yOffset - (int)redData[cnt-1],
cnt*(sampSpacing + 1)%this.getWidth(),
yOffset - (int)redData[cnt]);}//end if
}//end for loop}//end if for sampleCounter>0
}//end overridden paint method}//end inner class MyCanvas
}//end inner class Page}//end class PlotALot02 |
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?