<< Chapter < Page
  Digital signal processing - dsp     Page 19 / 25
Chapter >> Page >

A new object of the target class

However, the code in Listing 27 goes beyond that. In particular, the code in Listing 27 creates a new object from which to get the data that is to be plotted.

In some cases, this may be required, depending on the nature of the class from which that object is instantiated. In other cases, it may not be necessary,and could slow down the re-plotting process.

If your class doesn't contain counters or other variables that need to be re-initialized whenever you re-plot, you could probably safely remove or disablethe code in Listing 27 . This will make the program run faster, although you may not be able to see the difference.

The remainder of the event handler

The remaining code in the event handler is shown in Listing 28 .

Listing 28. The remainder of the event handler.
//Set plotting parameters using // data from the text fields.xMin = Double.parseDouble( xMinTxt.getText());xMax = Double.parseDouble( xMaxTxt.getText());yMin = Double.parseDouble( yMinTxt.getText());yMax = Double.parseDouble( yMaxTxt.getText());xTicInt = Double.parseDouble( xTicIntTxt.getText());yTicInt = Double.parseDouble( yTicIntTxt.getText());xCalcInc = Double.parseDouble( xCalcIncTxt.getText());//Calculate new values for the // length of the tic marks on the// axes. If too small on x-axis, // a default value is used later.xTicLen = (yMax-yMin)/50; yTicLen = (xMax-xMin)/50;//Repaint the plotting areas for(int cnt = 0;cnt<number; cnt++){ canvases[cnt].repaint(); }//end for loop}//end actionPerformed

This code is very straightforward. It performs the following actions:

  • Get new plotting parameters from the text fields.
  • Perform some calculations.
  • Cause each of the MyCanvas objects to be repainted using the new plotting parameters.

Again, I will let the comments provide any necessary explanations.

That brings us to the most interesting part of the program, the extended Canvas class.

Beginning of the class named MyCanvas

The class named MyCanvas is an inner class of the GUI class, which is used to override the paint method in each of the plotting areas shown in Figure 1 .

(Virtually all graphics operations in Java, other than those involving standard GUI components, are implemented by overriding the paint method on an object.)

The beginning of this class definition is shown in Listing 29 .

Listing 29. Beginning of the class named MyCanvas.
class MyCanvas extends Canvas{ int cnt;//object number//Factors to convert from double // values to integer pixel locations.double xScale; double yScale;MyCanvas(int cnt){//save obj number this.cnt = cnt;}//end constructor

Floating data vs. pixels

Most of the calculations in this program are performed on data of type double . However, graphics operations are ultimately performed in terms integer numbers of pixels. The code in Listing 29 declares scale factors used later to convert from double values to integer pixel locations.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




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

Notification Switch

Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?

Ask