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

Beginning of the class named GUI

The class named GUI begins in Listing 20 .

Listing 20. Beginning of the class named GUI.
class GUI extends JFrame implements ActionListener{//Define plotting parameters and // their default values.double xMin = 0.0; double xMax = 400.0;double yMin = -100.0; double yMax = 100.0;//Tic mark intervals double xTicInt = 20.0;double yTicInt = 20.0; //Tic mark lengths. If too small// on x-axis, a default value is // used later.double xTicLen = (yMax-yMin)/50; double yTicLen = (xMax-xMin)/50;//Calculation interval along x-axis double xCalcInc = 1.0;//Text fields for plotting parameters JTextField xMinTxt =new JTextField("" + xMin); JTextField xMaxTxt =new JTextField("" + xMax); JTextField yMinTxt =new JTextField("" + yMin); JTextField yMaxTxt =new JTextField("" + yMax); JTextField xTicIntTxt =new JTextField("" + xTicInt); JTextField yTicIntTxt =new JTextField("" + yTicInt); JTextField xCalcIncTxt =new JTextField("" + xCalcInc); //Panels to contain a label and a// text field JPanel pan0 = new JPanel();JPanel pan1 = new JPanel(); JPanel pan2 = new JPanel();JPanel pan3 = new JPanel(); JPanel pan4 = new JPanel();JPanel pan5 = new JPanel(); JPanel pan6 = new JPanel();//Misc instance variables int frmWidth = 408;int frmHeight = 430; int width;int height; int number;GraphIntfc01 data; String args = null;//Plots are drawn on the canvases // in this array.Canvas[] canvases;

The code in Listing 20 declares and in some cases initializes several instance variables that are required later to support the plotting process. Thecomments and the names of the variables generally indicate the purpose of those variables.

Beginning of the constructor for the GUI class

The beginning of the constructor for the GUI class is shown in Listing 21 .

Listing 21. Beginning of the constructor for the GUI class.
GUI(String args)throws NoSuchMethodException,ClassNotFoundException, InstantiationException,IllegalAccessException{ if(args != null){//Save for use later in the // ActionEvent handlerthis.args = args; //Instantiate an object of the// target class using the String // name of the class.data = (GraphIntfc01) Class.forName(args).newInstance(); }else{//Instantiate an object of the // test class named junk.data = new junk(); }//end else

The main purpose of the code in Listing 21 is to instantiated the object that will provide the data to be plotted. If the user provided the name of a class asa command-line argument, an attempt will be made to create a newInstance of that class.

(In case you are unfamiliar with this approach, this is one way to create an object of a class whose name is specified as a String at runtime.)

Otherwise, the code in Listing 21 will instantiate an object of the test class named junk (to be discussed later) .

Array to hold Canvas objects

Each of the separate plotting areas in Figure 1 is an object of a class that extends the Canvas class. The code in Listing 22 calls the getNmbr method on the new object to determine how many functions are to be plotted. Then it creates an array object to hold therequisite number of Canvas objects.

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