/home/sjenks/NetBeansProjects/CS1/src/npw/inventions2b.java |
1
2
3
4
5 package npw;
6
7 import java.awt.Color;
8 import java.util.Random;
9 import java.util.Scanner;
10 import javax.swing.JOptionPane;
11 import javax.swing.SwingUtilities;
12 import painter.SPainter;
13 import shapes.SRectangle;
14
15
16
17 @author
18
19 public class inventions2b {
20
21 public inventions2b() {
22 paintTheImage();
23 }
24
25 public static void main(String[] args) {
26 SwingUtilities.invokeLater(new Runnable() {
27 public void run() {
28 new inventions2b();
29 }
30 });
31 }
32
33
34 private void paintTheImage() {
35 int nrOfRectangles = 1000;
36 int legoHeight = getnumber("Height of Lego");
37 int legoWidth = (5 * legoHeight);
38 SPainter painter = new SPainter("Settign Sun", 600, 600);
39 SRectangle lego = new SRectangle(legoHeight,legoWidth);
40 paintLegos(painter, nrOfRectangles, lego);
41
42 paintSun(legoWidth, legoHeight, lego, painter);
43
44
45 }
46
47 private void paintLegos(SPainter painter, int nrOfRectangles,SRectangle lego) {
48 int i = 1;
49 while (i <= nrOfRectangles) {
50 paintOneLego(painter, lego);
51 i = i + 1;
52
53 }
54 }
55
56 private void paintOneLego(SPainter painter, SRectangle lego) {
57 Color constr1 = randomColors();
58 Color constr2 = randomColors();
59 Color constr3 = randomColors();
60 Color constr4 = randomColors();
61 Color constr5 = randomColors();
62 Color constr6 = randomColors();
63 Random rgen = new Random();
64 int rn = rgen.nextInt(6);
65 if (rn == 0) {
66 painter.setColor(constr1);
67 } else if (rn == 1) {
68 painter.setColor(constr2);
69 } else if (rn == 2) {
70 painter.setColor(constr3);
71 } else if (rn == 3) {
72 painter.setColor(constr4);
73 } else if (rn == 4) {
74 painter.setColor(constr5);
75 } else {
76 painter.setColor(constr6);
77 }
78
79 painter.move();
80 painter.paint(lego);
81 painter.setColor(Color.BLACK);
82 painter.draw(lego);
83
84 }
85
86 private int getnumber(String prompt) {
87 String nss = JOptionPane.showInputDialog(null, prompt + "?");
88 Scanner scanner = new Scanner(nss);
89 return scanner.nextInt();
90 }
91
92 private Color randomColors() {
93 Random rgen = new Random();
94 int r = rgen.nextInt(256);
95 int g = rgen.nextInt(256);
96 int b = rgen.nextInt(256);
97 return new Color(r, b, g);
98 }
99
100 private void paintSun(int legoWidth, int legoHeight, SRectangle lego, SPainter painter) {
101
102 painter.setColor(Color.YELLOW);
103 painter.paint(lego );
104 int i = 1;
105 while (i< (legoWidth/legoHeight)){
106 painter.mbk(legoHeight);
107 painter.paint(lego);
108 i= i+1;
109 }
110
111
112
113
114
115
116
117
118
119
120 }
121
122 }
123