1   // JRobo    Example 6
2   //          Demonstrates ScaledJRobo class & extended type checking
3   //          (aRobo can hold normal or Scaled JRobo)
4   // Author:  David 5/9/99
5   
6   import java.awt.*;
7   import java.applet.*;
8   
9   public class JRoboTest extends Applet
10  {
11      public void paint( Graphics g )
12      {
13          XJRobo aRobo = new XJRobo( g );
14          aRobo.move( -400, -300 );
15          house( aRobo );
16  
17          aRobo = new ScaledXJRobo( g );
18          aRobo.move( -50, -300 );
19  
20          ((ScaledXJRobo) aRobo).setScale( 0.25);
21          house( aRobo );
22          
23          aRobo.move( 350, 0 ); 
24          ((ScaledXJRobo) aRobo).setScale( 0.51);
25          house( aRobo );     
26  
27          aRobo.move( 300, 0 ); 
28          ((ScaledXJRobo) aRobo).setScale( 1.25);
29          house( aRobo );     
30      }
31  
32      
33      // house - draw a simple house using rect, equtri and move.
34      //         notice how it is drawn depends on type of JRobo!
35      public void house( XJRobo r)
36      {
37          // draw walls
38          r.rect( 250, 250 );
39          
40          // draw roof
41          r.move( 0, 250 );
42          r.equtri( 250 );
43          r.move( 0, -250);
44          
45          // draw windows
46          r.move( 50, 150 );
47          r.rect( 50, 50 );
48          r.move( 100, 0 );
49          r.rect( 50, 50 );
50          
51          // draw door
52          r.move( -50, -150 );
53          r.rect( 75, 50 );
54      }
55  
56  } // end JRoboTest class
57