Interpreter1.java
1    /* 
2    *This interpreter is intended tp paint different colored dots in a window 
3    * 
4     * The commands that the interpreter can recognize and respond to are: 
5     * -BLUE: paint a blue dot 
6     * -RED: paint a red dot 
7     * -HELP: show a list of the commands in a dialog message box 
8     * -EXIT: terminate the program 
9     */
10   
11   package interpreters;
12   
13   
14   
15   import java.awt.Color;
16   import javax.swing.JOptionPane;
17   import javax.swing.SwingUtilities;
18   import painter.SPainter;
19   import shapes.SCircle;
20   
21   public class Interpreter1 {
22   
23   private void interpreter() {
24   
25       // CREATE OBJECTS TO THINK WITH
26   SPainter miro = new SPainter("Dot Thing",400,400);
27   miro.setScreenLocation(0,0);
28   SCircle dot = new SCircle(180);
29   
30   // REPEATEDLY TAKE A COMMAND FROM AN INPUT DIALOG BOX AND INTERPRET IT
31   while ( true ) {
32       String command = JOptionPane.showInputDialog(null, "Command?");
33       if ( command == null ) { command = "exit"; } // user clicked on Cancel
34       if ( command.equalsIgnoreCase("blue")) {
35           miro.setColor(Color.BLUE);
36           miro.paint(dot);
37       } else if ( command.equalsIgnoreCase ("red")) {
38           miro.setColor(Color.RED);
39           miro.paint(dot);
40       } else if ( command.equalsIgnoreCase("help")){
41           JOptionPane.showMessageDialog(null, "Valid commands are: "
42                   + "RED / BLUE / HELP / EXIT ") ;
43               miro.end();
44               System.out.println("Thank you for viewing the dots...");
45               break;
46           }else{
47               JOptionPane.showMessageDialog(null, "Unrecognizable command:"
48                       + command.toUpperCase());
49           }
50       }
51           }
52   // INFRASTRUCTURE FOR SOME SIMPLE PAINTING
53   
54       public Interpreter1() {
55       interpreter();
56       }
57   
58   public static void main(String[] args) {
59       SwingUtilities.invokeLater(new Runnable() {
60           public void run() {
61               new Interpreter1();
62           }
63           });
64           }
65       }
66   
67   
68   
69   
70   
71   
72   
73