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 21/27)

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 overridden paint method

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

Setting the drawing color

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 .

New code in the overridden paint method

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:

  • The drawing color has been set to red instead of the default color of black.
  • The data being plotted is the second set of data. This data is stored in the array object referred to by redData .

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
<< 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.