Dots.java
1    /* 
2     * Program to paint dots in the context of the Nonrepresentational 
3     * Painting World, NPW. 
4     */
5    package npw;
6    
7    import java.awt.Color;
8    import javax.swing.SwingUtilities;
9    import painter.SPainter;
10   import shapes.SCircle;
11   
12   public class Dots {
13       // THE SOLUTION TO THE DOTS PROBLEM
14       private void paintTheImage() {
15           SPainter painter = new SPainter("Dots", 400, 400);
16           SCircle bdot = new SCircle(20);
17           SCircle rdot = new SCircle(35);
18           SCircle gdot = new SCircle(50);
19           SCircle odot = new SCircle(5);
20           paintBlueCircles(painter, bdot);
21           paintRedCircles(painter, rdot);
22           paintGreenCircles(painter, gdot);
23           paintOrangeCircles(painter, odot);
24       }
25   
26       // REQUIRED INFRASTRUCTURE
27       public Dots() {
28           paintTheImage();
29       }
30   
31       public static void main(String[] args) {
32           SwingUtilities.invokeLater(new Runnable() {
33               public void run() {
34                   new Dots();
35               }
36           });
37       }
38   
39       private void paintBlueCircles(SPainter painter, SCircle bdot) {
40           painter.setColor(Color.BLUE);
41           painter.moveToCenter();
42           painter.mfd(bdot.radius());
43           painter.mlt(bdot.radius());
44           painter.paint(bdot);
45           painter.moveToCenter();
46           painter.mfd(bdot.radius());
47           painter.mrt(bdot.radius());
48           painter.paint(bdot);
49       }
50   
51       private void paintRedCircles(SPainter painter, SCircle rdot) {
52           painter.setColor(Color.RED);
53           painter.moveToCenter();
54           painter.mbk(rdot.radius());
55           painter.mrt(rdot.radius());
56           painter.paint(rdot);
57           painter.moveToCenter();
58           painter.mbk(rdot.radius());
59           painter.mlt(rdot.radius());
60           painter.paint(rdot);
61       }
62   
63       private void paintGreenCircles(SPainter painter, SCircle gdot) {
64           painter.setColor(Color.GREEN);
65           painter.moveToCenter();
66           painter.mbk(gdot.diameter());
67           painter.mrt(gdot.diameter());
68           painter.paint(gdot);
69           painter.moveToCenter();
70           painter.mbk(gdot.diameter());
71           painter.mlt(gdot.diameter());
72           painter.paint(gdot);
73       }
74       private void paintOrangeCircles(SPainter painter, SCircle odot) {
75           painter.setColor(Color.ORANGE);
76           painter.moveToCenter();
77           painter.mfd(odot.diameter());
78           painter.mlt(odot.diameter());
79           painter.mfd(odot.diameter());
80           painter.mfd(odot.diameter());
81           painter.mfd(odot.diameter());
82           painter.mfd(odot.diameter());
83           painter.paint(odot);
84           painter.moveToCenter();
85           painter.mfd(odot.diameter());
86           painter.mrt(odot.diameter());
87           painter.mfd(odot.diameter());
88           painter.mfd(odot.diameter());
89           painter.mfd(odot.diameter());
90           painter.mfd(odot.diameter());
91           painter.paint(odot);
92           painter.moveToCenter();
93           painter.paint(odot);
94       }
95   }
96