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