1 package npw; 2 //Basically just me struggling to position squares and circles... 3 //If statement is used to exit and show the program, I hope that's reasonable... 4 import java.awt.Color; 5 import javax.swing.JOptionPane; 6 import javax.swing.SwingUtilities; 7 import painter.SPainter; 8 import shapes.SCircle; 9 import shapes.SSquare; 10 11 public class Invention1 { 12 //Solution to the graphical problem. 13 private void paintTheImage() { 14 int sideLength = 25; 15 SSquare pastel = new SSquare(sideLength); 16 SCircle pele = pastel.inscribingCircle(); 17 int paintRow = 16; 18 int otherRow = 6; 19 int width = paintRow*sideLength; 20 int height = otherRow*60; 21 int four = 4; 22 SPainter waterColor = new SPainter(width+50,height+50); //actual measurements still unknown 23 waterColor.setScreenLocation(0, 0); 24 25 while (true) { 26 String command = JOptionPane.showInputDialog(null, "To see image write show, to exit write exit."); 27 if (command == null) { 28 command = "exit"; 29 } //user clicked on cancel 30 if (command.equalsIgnoreCase("show")) { 31 background(waterColor,pastel); 32 paintLine(waterColor,paintRow,pastel, pele); 33 paintUp(waterColor,otherRow,pastel); 34 centerCircleSquare(waterColor,pastel,pele); 35 moreDetails(waterColor,pele); 36 framing(waterColor,four,pastel,pele); 37 otherframing(waterColor,four,pastel,pele); 38 } else if (command.equalsIgnoreCase("exit")) { 39 waterColor.end(); 40 System.out.println("Thank you"); 41 break; 42 } else { 43 JOptionPane.showMessageDialog(null, "Command not understood please try again :P " 44 + command.toUpperCase()); 45 } 46 } 47 48 49 } 50 51 private void otherframing(SPainter waterColor, int four, SSquare pastel, SCircle pele) { 52 waterColor.mrt(200); 53 waterColor.mfd(160); 54 int i = 1; 55 while (i <= four) { 56 row(waterColor,pastel,pele); 57 i = i + 1; 58 waterColor.mbk(pastel.side()+4); 59 } 60 waterColor.moveToCenter(); 61 } 62 63 private void framing(SPainter waterColor, int four, SSquare pastel, SCircle pele) { 64 waterColor.mlt(200); 65 waterColor.mfd(160); 66 int i = 1; 67 while (i <= four) { 68 row(waterColor,pastel,pele); 69 i = i + 1; 70 waterColor.mbk(pastel.side()+4); 71 } 72 waterColor.moveToCenter(); 73 } 74 75 private void row(SPainter waterColor, SSquare pastel, SCircle pele) { 76 waterColor.setColor(Color.magenta); 77 waterColor.paint(pele); 78 pastel.resetSide(10); 79 waterColor.setColor(Color.blue); 80 waterColor.paint(pastel); 81 pastel.resetSide(100); 82 } 83 84 85 private void moreDetails(SPainter waterColor, SCircle pele) { 86 waterColor.moveToCenter(); 87 waterColor.setColor(Color.magenta); 88 waterColor.mfd(120); 89 waterColor.mlt(125); 90 waterColor.paint(pele); 91 waterColor.mrt(250); 92 waterColor.paint(pele); 93 waterColor.mbk(240); 94 waterColor.paint(pele); 95 waterColor.mlt(250); 96 waterColor.paint(pele); 97 waterColor.moveToCenter(); 98 } 99 100 private void centerCircleSquare(SPainter waterColor, SSquare pastel, SCircle pele) { 101 pastel.resetSide(100); 102 waterColor.setColor(Color.BLACK); 103 waterColor.draw(pastel); 104 pele.resetRadius(50); 105 waterColor.paint(pele); 106 pele.resetRadius(30); 107 waterColor.setColor(Color.red); 108 waterColor.paint(pele); 109 waterColor.setColor(Color.black); 110 pele.resetRadius(15); 111 waterColor.paint(pele); 112 } 113 114 private void background(SPainter waterColor, SSquare pastel) { 115 waterColor.setColor(Color.BLACK); 116 pastel.resetSide(500); 117 waterColor.paint(pastel); 118 waterColor.setColor(Color.cyan); 119 pastel.resetSide(300); 120 waterColor.paint(pastel); 121 waterColor.setColor(Color.BLACK); 122 pastel.resetSide(200); 123 waterColor.paint(pastel); 124 waterColor.setColor(Color.white); 125 pastel.resetSide(150); 126 waterColor.paint(pastel); 127 pastel.resetSide(25); 128 } 129 130 private void paintUp(SPainter waterColor, int otherRow, SSquare pastel) { 131 waterColor.mfd((4)*(pastel.side()+(2*6))); 132 int i = 1; 133 while (i <= otherRow) { 134 paintSquares(waterColor, pastel); 135 i = i + 1; 136 waterColor.mbk(pastel.side()+4); 137 } 138 waterColor.moveToCenter(); 139 } 140 141 private void paintSquares(SPainter waterColor, SSquare pastel) { 142 waterColor.setColor(Color.red); 143 pastel.resetSide(60); 144 waterColor.paint(pastel); 145 waterColor.setColor(Color.BLUE); 146 pastel.resetSide(40); 147 waterColor.draw(pastel); 148 waterColor.setColor(Color.BLACK); 149 pastel.resetSide(25); 150 waterColor.draw(pastel); 151 pastel.resetSide(60); 152 } 153 154 private void paintLine(SPainter waterColor, int paintRow, SSquare pastel, SCircle pele) { 155 waterColor.mlt((7.5)*(pastel.side())); 156 int w = 1; 157 while (w <= paintRow) { 158 paintHere(waterColor, pastel, pele); 159 w = w + 1; 160 waterColor.mrt(pastel.side()); 161 } 162 waterColor.moveToCenter(); 163 } 164 165 private void paintHere(SPainter waterColor, SSquare pastel, SCircle pele) { 166 waterColor.setColor(Color.BLUE); 167 waterColor.paint(pastel); 168 waterColor.setColor(Color.cyan); 169 waterColor.paint(pele); 170 171 } 172 173 174 public Invention1(){ 175 paintTheImage(); 176 } 177 public static void main(String[] args){ 178 SwingUtilities.invokeLater(new Runnable() { 179 @Override 180 public void run() { 181 new Invention1(); 182 } 183 }); 184 } 185 } 186 //This file still needs work 187 //Note you don't need to ask for information to use while loop or if statement.