<< Chapter < Page
  Digital signal processing - dsp     Page 15 / 24
Chapter >> Page >

The code in Listing 10 uses the value of displayType to make a decision and to instantiate a pair of objects from two ofsix different inner classes, each of which extends the class named Canvas . One of the objects in the pair is used to display the 3D surface according to a specified format. The other object inthe pair is used to display the calibration strip below the surface display.

Listing 10. Create an appropriate pair of Canvas objects.
Canvas surface = null; Canvas scale = null;//Establish the format based on the value of// the parameter named display. if(displayType == 0){//Create a type 0 Canvas object to draw the // surface on. This is a Grayscale plot// display. surface = new CanvasType0surface();//Create a Canvas object to draw the scale // on for the Grayscale plot.scale = new CanvasType0scale(); }else if(displayType == 1){//Color Shift plot surface = new CanvasType1surface();scale = new CanvasType1scale(); }else if(displayType == 2){//Color Contour plot. surface = new CanvasType2surface();scale = new CanvasType2scale(); }//end if-else on display type

The code in Listing 10 is straightforward and shouldn't require further explanation.

The interesting code

The interesting code is contained in the overridden paint method belonging to each of the six inner classes from which the pair of objectsis instantiated. I will explain those overridden paint methods later.

Add the Canvas objects to the Frame

The default layout manager for a Frame object is BorderLayout . The code in Listing 11 adds one of the above-instantiated objects to the center location of the Frame , and adds the other object to the South location of the Frame . This produces the format with the surface plot above the calibration scale as shown by any of the imagesin Figure 1 through Figure 3 .

Listing 11. Add the Canvas objects to the Frame.
//Add the plotted surface to center of the // Frameadd(BorderLayout.CENTER,surface); //Add the scale to bottom of Frameadd(BorderLayout.SOUTH,scale); //Cause the size of the Frame to be just// right to contain the two Canvas objects. pack();//Set Frame cosmetics and make it visible. setTitle("Copyright 2005 R.G.Baldwin");setVisible(true);

Call the pack method and set the title

After adding the two objects to the Frame , Listing 11 calls the pack method on the Frame to cause the size of the Frame to close in around the two objects.

Finally, Listing 11 sets the title on the Frame and makes the s visible.

Register an anonymous WindowListener object

Listing 12 registers an anonymous WindowListener object on the Frame to cause the program to terminate whenever the user clicks the X-button in the upper right corner of the Frame .

Listing 12. Register an anonymous WindowListener object.
addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){System.exit(0); }//end windowClosing}//end class definition );//end addWindowListener}//end constructor

If you are unfamiliar with the use of anonymous inner classes, you can learn about such topics in my other publications.

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