1 /* 2 *Program to paint a blue dot in the context of the Nonrespresentational 3 * Painting World, NPW 4 */ 5 6 package npw; 7 8 import painter.SPainter; 9 import shapes.SCircle; 10 11 import javax.swing.*; 12 import java.awt.*; 13 14 15 public class Dots { 16 17 //THE SOLUTION TO THE DOTS PROBLEM 18 19 private void paintTheImage() { 20 SPainter painter = new SPainter("DOTS", 600,600); 21 SCircle dot = new SCircle(10); 22 23 paintBlueDots(painter, dot); 24 paintGreenDots(painter, dot); 25 paintYellowDots(painter, dot); 26 paintRedDots(painter, dot); 27 } 28 29 private void paintRedDots(SPainter painter, SCircle dot) { 30 painter.setColor(Color.RED); 31 dot.expand(8); 32 painter.mlt(100); 33 painter.paint(dot); 34 //the first red dot 35 painter.mrt(200); 36 painter.paint(dot); 37 //second red dot 38 painter.mlt(100); 39 dot.radius(); 40 //back to the original position and size 41 } 42 43 private void paintYellowDots(SPainter painter, SCircle dot) { 44 painter.setColor(Color.YELLOW); 45 dot.expand(4); 46 painter.mbk(50); 47 painter.mlt(100); 48 painter.paint(dot); 49 //first yellow dot 50 painter.mrt(200); 51 painter.paint(dot); 52 //second dot 53 painter.mlt(100); 54 painter.mfd(50); 55 dot.radius(); 56 //back to the original position and size 57 58 } 59 60 private void paintGreenDots(SPainter painter, SCircle dot) { 61 painter.setColor(Color.GREEN); 62 dot.expand(2); 63 painter.mbk(100); 64 painter.mlt(100); 65 painter.paint(dot); 66 //the first green dot 67 painter.mrt(200); 68 painter.paint(dot); 69 //second green dot 70 painter.mlt(100); 71 painter.mfd(100); 72 dot.shrink(2); 73 //back to the original position and size 74 } 75 76 private void paintBlueDots(SPainter painter, SCircle dot) { 77 painter.setColor(Color.BLUE); 78 painter.paint(dot); 79 //First blue dot 80 painter.mbk(50); 81 painter.mlt(50); 82 painter.paint(dot); 83 //Second blue dot 84 painter.mrt(100); 85 painter.paint(dot); 86 //Third blue dot 87 painter.mfd(50); 88 painter.mlt(50); 89 //back to the original position 90 91 } 92 93 //REQUIRED INFRASTRUCTURE 94 95 public Dots() { 96 paintTheImage(); 97 } 98 public static void main (String[] args) { 99 SwingUtilities.invokeLater(new Runnable() { 100 public void run() { 101 new Dots(); 102 } 103 }); 104 } 105 106 }