Interpreter1.java
1    /* 
2     *This interpreter is intended to 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 java.awt.Color;
14   import javax.swing.JOptionPane;
15   import javax.swing.SwingUtilities;
16   
17   import painter.SPainter;
18   import shapes.SCircle;
19   
20   public class Interpreter1 {
21       private void Interpreter() {
22           //Create objects to think with
23           SPainter miro = new SPainter("Dot Thing", 400, 400);
24           miro.setScreenLocation(0, 0);
25           SCircle dot = new SCircle(180);
26   
27           //Repeatedly take a command form an Input Dialog box and Interpret it
28           while (true) {
29               String command = JOptionPane.showInputDialog(null, "Command?");
30               if (command == null) {
31                   command = "exit";
32               } //user clicked on Cancel
33               if (command.equalsIgnoreCase("blue")) {
34                   miro.setColor(Color.BLUE);
35                   miro.paint(dot);
36               } else if (command.equalsIgnoreCase("red")) {
37                   miro.setColor(Color.RED);
38                   miro.paint(dot);
39               } else if (command.equalsIgnoreCase("help")) {
40                   JOptionPane.showMessageDialog(null, "Valid commands are:" + "RED | BLUE | HELP | EXIT");
41               } else if (command.equalsIgnoreCase("exit")) {
42                   miro.end();
43                   System.out.println("Thanks You For Viewing the Dots....");
44                   break;
45               } else {
46                   JOptionPane.showMessageDialog(null, "Unrecognizable command:" + command.toUpperCase());
47               }
48           }
49       }
50   
51       public Interpreter1() {
52           Interpreter();
53       }
54   
55       public static void main(String[] args) {
56           SwingUtilities.invokeLater(new Runnable() {
57               @Override
58               public void run() {
59                   new Interpreter1();
60               }
61           });
62   
63       }
64   }
65