Dots.java
1    /* 
2     * Program to paint a dots in the context of the Nonrepresentational 
3     * Painting World, NPW. 
4     * 
5    1. it contains exactly 9 painted (filled in) circles 
6    2. it contains circles of exactly 4 different sizes 
7    3. it contains circles of exactly 4 different colors 
8    4. none of the circles touch 
9    5. the image is symmetric about the Y-axis 
10   6. not all of the circles touch the Y-axis 
11    */
12   
13   package npw;
14   
15   import painter.SPainter;
16   import shapes.SCircle;
17   import javax.swing.*;
18   import java.awt.*;
19   
20   
21   public class Dots {
22   //THE SOLUTION TO THE DOTS PROBLEM
23   
24       private void paintTheImage() {
25           SPainter painter = new SPainter("Dots", 500, 500);
26           SCircle dot = new SCircle(100);
27           paintDot1(painter,dot);
28           paintDot2(painter,dot);
29           paintDot3(painter,dot);
30           paintDot4(painter,dot);
31           paintDot5(painter,dot);
32           paintDot6(painter,dot);
33           paintDot7(painter,dot);
34           paintDot8(painter,dot);
35       }
36   
37       private void paintDot1(SPainter painter, SCircle dot) {
38           painter.setColor(Color.PINK);
39           painter.mfd(150);
40           painter.mrt(150);
41           dot.s2();
42           painter.paint(dot);
43           painter.mbk(150);
44           painter.mlt(150);
45           dot.x2();
46   
47       }
48   
49       private void paintDot2(SPainter painter, SCircle dot) {
50           painter.setColor(Color.PINK);
51           painter.mfd(150);
52           painter.mlt(150);
53           dot.s2();
54           painter.paint(dot);
55           dot.x2();
56           painter.mbk(150);
57           painter.mrt(150);
58   
59       }
60   
61       private void paintDot3(SPainter painter, SCircle dot) {
62           painter.setColor(Color.CYAN);
63           painter.mfd(50);
64           painter.mlt(100);
65           dot.s3();
66           painter.paint(dot);
67           dot.x3();
68           painter.mbk(50);
69           painter.mrt(100);
70       }
71   
72       private void paintDot4(SPainter painter, SCircle dot) {
73           painter.setColor(Color.CYAN);
74           painter.mfd(50);
75           painter.mrt(100);
76           dot.s3();
77           painter.paint(dot);
78           dot.x3();
79           painter.mbk(50);
80           painter.mlt(100);
81   
82       }
83   
84       private void paintDot5(SPainter painter, SCircle dot) {
85           painter.setColor(Color.MAGENTA);
86           painter.mbk(200);
87           painter.mlt(200);
88           dot.s5();
89           painter.paint(dot);
90           painter.mfd(200);
91           painter.mrt(200);
92           dot.x5();
93       }
94   
95       private void paintDot6(SPainter painter, SCircle dot) {
96           painter.setColor(Color.MAGENTA);
97           painter.mbk(200);
98           painter.mrt(200);
99           dot.s5();
100          painter.paint(dot);
101          painter.mfd(200);
102          painter.mlt(200);
103          dot.x5();
104      }
105  
106      private void paintDot7(SPainter painter, SCircle dot) {
107          painter.setColor(Color.RED);
108          painter.mfd(230);
109          painter.mlt(230);
110          dot.s7();
111          painter.paint(dot);
112          painter.mbk(230);
113          painter.mrt(230);
114          dot.x7();
115  
116      }
117  
118      private void paintDot8(SPainter painter, SCircle dot) {
119          painter.setColor(Color.RED);
120          painter.mfd(230);
121          painter.mrt(230);
122          dot.s7();
123          painter.paint(dot);
124          painter.mbk(230);
125          painter.mlt(230);
126          dot.x7();
127  
128      }
129  
130  
131  
132  //REQUIRED INFRASTRUCTURE
133  
134      public Dots() {
135          paintTheImage();
136      }
137  
138      public static void main(String[] args) {
139          SwingUtilities.invokeLater(new Runnable() {
140              public void run() {
141                  new Dots();
142              }
143          });
144      }
145  }
146  
147  
148