Interpreter2.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   import painter.SPainter;
14   import shapes.SCircle;
15   
16   import javax.swing.*;
17   import java.awt.*;
18   
19   public class Interpreter2 {
20   
21   
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 ("green")) {
41                       miro.setColor(Color.GREEN);
42                       miro.paint(dot);
43                   } else if ( command.equalsIgnoreCase ("yellow")) {
44                       miro.setColor(Color.YELLOW);
45                       miro.paint(dot);
46                   } else if ( command.equalsIgnoreCase("help")){
47                       JOptionPane.showMessageDialog(null, "Valid commands are: "
48                               + "RED / BLUE / GREEN/ YELLOW/ HELP / EXIT ") ;
49                       miro.end();
50                       System.out.println("Thank you for viewing the dots...");
51                       break;
52                   }else{
53                       JOptionPane.showMessageDialog(null, "Unrecognizable command:"
54                               + command.toUpperCase());
55                   }
56               }
57           }
58   // INFRASTRUCTURE FOR SOME SIMPLE PAINTING
59   
60           public Interpreter2() {
61               interpreter();
62           }
63   
64           public static void main(String[] args) {
65               SwingUtilities.invokeLater(new Runnable() {
66                   public void run() {
67                       new interpreters.Interpreter2();
68                   }
69               });
70           }
71       }
72   
73   
74   
75   
76   
77   
78   
79   
80