Invention1.java
1    package npw;
2    //Basically just me struggling to position squares and circles...
3    //If statement is used to exit and show the program, I hope that's reasonable...
4    import java.awt.Color;
5    import javax.swing.JOptionPane;
6    import javax.swing.SwingUtilities;
7    import painter.SPainter;
8    import shapes.SCircle;
9    import shapes.SSquare;
10   
11   public class Invention1 {
12       //Solution to the graphical problem.
13       private void paintTheImage() {
14           int sideLength = 25;
15           SSquare pastel = new SSquare(sideLength);
16           SCircle pele = pastel.inscribingCircle();
17           int paintRow = 16;
18           int otherRow = 6;
19           int width = paintRow*sideLength;
20           int height = otherRow*60;
21           int four = 4;
22           SPainter waterColor = new SPainter(width+50,height+50); //actual measurements still unknown
23           waterColor.setScreenLocation(0, 0);
24   
25           while (true) {
26               String command = JOptionPane.showInputDialog(null, "To see image write show, to exit write exit.");
27               if (command == null) {
28                   command = "exit";
29               } //user clicked on cancel
30               if (command.equalsIgnoreCase("show")) {
31                   background(waterColor,pastel);
32                   paintLine(waterColor,paintRow,pastel, pele);
33                   paintUp(waterColor,otherRow,pastel);
34                   centerCircleSquare(waterColor,pastel,pele);
35                   moreDetails(waterColor,pele);
36                   framing(waterColor,four,pastel,pele);
37                   otherframing(waterColor,four,pastel,pele);
38               } else if (command.equalsIgnoreCase("exit")) {
39                   waterColor.end();
40                   System.out.println("Thank you");
41                   break;
42               } else {
43                   JOptionPane.showMessageDialog(null, "Command not understood please try again :P "
44                           + command.toUpperCase());
45               }
46           }
47   
48   
49       }
50   
51       private void otherframing(SPainter waterColor, int four, SSquare pastel, SCircle pele) {
52           waterColor.mrt(200);
53           waterColor.mfd(160);
54           int i = 1;
55           while (i <= four) {
56               row(waterColor,pastel,pele);
57               i = i + 1;
58               waterColor.mbk(pastel.side()+4);
59           }
60           waterColor.moveToCenter();
61       }
62   
63       private void framing(SPainter waterColor, int four, SSquare pastel, SCircle pele) {
64           waterColor.mlt(200);
65           waterColor.mfd(160);
66           int i = 1;
67           while (i <= four) {
68               row(waterColor,pastel,pele);
69               i = i + 1;
70               waterColor.mbk(pastel.side()+4);
71           }
72           waterColor.moveToCenter();
73       }
74   
75       private void row(SPainter waterColor, SSquare pastel, SCircle pele) {
76           waterColor.setColor(Color.magenta);
77           waterColor.paint(pele);
78           pastel.resetSide(10);
79           waterColor.setColor(Color.blue);
80           waterColor.paint(pastel);
81           pastel.resetSide(100);
82       }
83   
84   
85       private void moreDetails(SPainter waterColor, SCircle pele) {
86           waterColor.moveToCenter();
87           waterColor.setColor(Color.magenta);
88           waterColor.mfd(120);
89           waterColor.mlt(125);
90           waterColor.paint(pele);
91           waterColor.mrt(250);
92           waterColor.paint(pele);
93           waterColor.mbk(240);
94           waterColor.paint(pele);
95           waterColor.mlt(250);
96           waterColor.paint(pele);
97           waterColor.moveToCenter();
98       }
99   
100      private void centerCircleSquare(SPainter waterColor, SSquare pastel, SCircle pele) {
101          pastel.resetSide(100);
102          waterColor.setColor(Color.BLACK);
103          waterColor.draw(pastel);
104          pele.resetRadius(50);
105          waterColor.paint(pele);
106          pele.resetRadius(30);
107          waterColor.setColor(Color.red);
108          waterColor.paint(pele);
109          waterColor.setColor(Color.black);
110          pele.resetRadius(15);
111          waterColor.paint(pele);
112      }
113  
114      private void background(SPainter waterColor, SSquare pastel) {
115          waterColor.setColor(Color.BLACK);
116          pastel.resetSide(500);
117          waterColor.paint(pastel);
118          waterColor.setColor(Color.cyan);
119          pastel.resetSide(300);
120          waterColor.paint(pastel);
121          waterColor.setColor(Color.BLACK);
122          pastel.resetSide(200);
123          waterColor.paint(pastel);
124          waterColor.setColor(Color.white);
125          pastel.resetSide(150);
126          waterColor.paint(pastel);
127          pastel.resetSide(25);
128      }
129  
130      private void paintUp(SPainter waterColor, int otherRow, SSquare pastel) {
131          waterColor.mfd((4)*(pastel.side()+(2*6)));
132          int i = 1;
133          while (i <= otherRow) {
134              paintSquares(waterColor, pastel);
135              i = i + 1;
136              waterColor.mbk(pastel.side()+4);
137          }
138          waterColor.moveToCenter();
139      }
140  
141      private void paintSquares(SPainter waterColor, SSquare pastel) {
142          waterColor.setColor(Color.red);
143          pastel.resetSide(60);
144          waterColor.paint(pastel);
145          waterColor.setColor(Color.BLUE);
146          pastel.resetSide(40);
147          waterColor.draw(pastel);
148          waterColor.setColor(Color.BLACK);
149          pastel.resetSide(25);
150          waterColor.draw(pastel);
151          pastel.resetSide(60);
152      }
153  
154      private void paintLine(SPainter waterColor, int paintRow, SSquare pastel, SCircle pele) {
155          waterColor.mlt((7.5)*(pastel.side()));
156          int w = 1;
157          while (w <= paintRow) {
158              paintHere(waterColor, pastel, pele);
159              w = w + 1;
160              waterColor.mrt(pastel.side());
161          }
162          waterColor.moveToCenter();
163      }
164  
165      private void paintHere(SPainter waterColor, SSquare pastel, SCircle pele) {
166          waterColor.setColor(Color.BLUE);
167          waterColor.paint(pastel);
168          waterColor.setColor(Color.cyan);
169          waterColor.paint(pele);
170  
171      }
172  
173  
174      public Invention1(){
175          paintTheImage();
176      }
177      public static  void main(String[] args){
178          SwingUtilities.invokeLater(new Runnable() {
179              @Override
180              public void run() {
181                  new Invention1();
182              }
183          });
184      }
185  }
186  //This file still needs work
187  //Note you don't need to ask for information to use while loop or if statement.