<< Chapter < Page | Chapter >> Page > |
The code in Listing 24 :
The code in Listing 25 is simply more routine code required to:
Once again, I will let the comments serve as the explanation for this code.
Listing 25. More routine construction code. |
---|
//Add the sub-assemblies to the
// frame. Set its location, size,// and title, and make it visible.
getContentPane().add(ctlPnl,"South");
getContentPane().add(canvasPanel,"Center");
setBounds(0,0,frmWidth,frmHeight);setTitle("Graph01, " +
"Copyright 2002, " +"Richard G. Baldwin");
setVisible(true);//Set to exit on X-button click
setDefaultCloseOperation(EXIT_ON_CLOSE);
//Get and save the size of the// plotting surface
width = canvases[0].getWidth();
height = canvases[0].getHeight(); |
As you will see later, the actual plotting behavior of this program is defined by the code in an overridden version of the paint method in the MyCanvas class. I will discuss that code in some detail later.
One way to cause the code in the overridden paint method to be executed is to call the repaint method on a reference to a MyCanvas object.
The code in Listing 26 calls the repaint method on each MyCanvas object in sequence, to guarantee that they are properly painted when the GUI object first becomes visible.
Listing 26. Force a repaint. |
---|
for(int cnt = 0; cnt<number; cnt++){
canvases[cnt].repaint();
}//end for loop}//end constructor |
Similar code will be used again later to cause the graphs to be repainted each time the user presses the Graph button in the bottom right corner of Figure 1 .
The code in Listing 26 also ends the constructor for the GUI object. When the constructor finishes execution, the GUI appears on the screen with all plotting areas properly painted.
[link] shows the beginning of the event handler that is registered on the button to cause the functions to be re-plotted.
Beginning of the re-plot code. |
---|
public void actionPerformed(
ActionEvent evt){//Re-instantiate the object that
// provides the datatry{
if(args != null){data = (GraphIntfc01)Class.
forName(args).newInstance();}else{
data = new junk();}//end else
}catch(Exception e){//Known to be safe at this point.
// Otherwise would have aborted// earlier.
}//end catch |
The purpose of the event handler is to cause the functions to be re-plotted after the user changes the plotting parameters.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?