Interpreter1.java
package interpreters;
11   
12   import java.awt.Color;
13   import javax.swing.JOptionPane;
14   import javax.swing.SwingUtilities;
15   
16   import painter.SPainter;
17   import shapes.SCircle;
18   
19   public class Interpreter1 {
20       private void interpreter() {
21           // Create objects to think with.
22           SPainter miro = new SPainter("Dot Thing", 400, 400);
23           miro.setScreenLocation(0, 0);
24           SCircle dot = new SCircle(180);
25           // Repeatedly take a command from an input dialog box and interpret it
26           while (true) {
27               String command = JOptionPane.showInputDialog(null, "Command?");
28               if (command == null) {
29                   command = "exit";
30               } // user click on cancel
31               if (command.equalsIgnoreCase("blue")) {
32                   miro.setColor(Color.BLUE);
33                   miro.paint(dot);
34               } else if (command.equalsIgnoreCase("red")) {
35                   miro.setColor(Color.RED);
36                   miro.paint(dot);
37               } else if (command.equalsIgnoreCase("help")) {
38                   JOptionPane.showMessageDialog(null, "Valid commands are: " + "RED | BLUE | HELP | EXIT ");
39               } else if (command.equalsIgnoreCase("exit")) {
40                   miro.end();
41                   System.out.println("Thank you for viewing the dots ...");
42                   break;
43               } else {
44                   JOptionPane.showMessageDialog(null, "Unrecognizable command: " + command.toUpperCase());
45               }
46           }
47       }
48   
49   
50   // Infrastructure for some simple painting
51   
52       public Interpreter1() {
53           interpreter();
54       }
55   
56       public static void main(String[] args) {
57           SwingUtilities.invokeLater(new Runnable() {
58               public void run() {
59                   new Interpreter1();
60               }
61           });
62       }
63   }
64