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