<< Chapter < Page | Chapter >> Page > |
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.
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) .
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.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?