//Screenshots attached to submission
// By Mason Marnell
// Lab13ast.java
// The Paint Brush Program
// Student Version
// The Student version starts with just one color (red) and all that can be drawn is one pixel at a time.
import java.applet.Applet;
import java.awt.*;
import java.util.Random;
public class PaintProgram extends Applet {
Rectangle red, blue, pink, green, yellow, black, lightGray, orange, cyan, gray, rand ;
int numColor, numTool, xClick, yClick;
Rectangle smallBox, mediumBox, largeBox, smallCirc, largeCirc, vertOval, horOval, splatter, ex, carat ;
public void init() {
numColor = 1;
numTool = 1;
red = new Rectangle(5, 5, 42, 42);
blue = new Rectangle(55, 5, 42, 42);
pink = new Rectangle(105, 5, 42, 42);
green = new Rectangle(155, 5, 42, 42);
yellow = new Rectangle(205, 5, 42, 42);
black = new Rectangle(255, 5, 42, 42);
lightGray = new Rectangle(305, 5, 42, 42);
orange = new Rectangle(355, 5, 42, 42);
cyan = new Rectangle(405, 5, 42, 42);
gray = new Rectangle(455, 5, 42, 42);
rand = new Rectangle(505, 5, 42, 42);
smallBox = new Rectangle(5, 55, 42, 42);
mediumBox = new Rectangle(5, 105, 42, 42);
largeBox = new Rectangle(5, 155, 42, 42);
smallCirc = new Rectangle(5, 205, 42, 42);
largeCirc = new Rectangle(5, 255, 42, 42);
vertOval = new Rectangle(5, 305, 42, 42);
horOval = new Rectangle(5, 355, 42, 42);
splatter = new Rectangle(5, 405, 42, 42);
ex = new Rectangle(5, 455, 42, 42);
carat = new Rectangle(5, 505, 42, 42);
}
public void paint(Graphics g) {
g.setColor(Color.red);
g.fillRect(5, 5, 42, 42);
g.setColor(Color.blue);
g.fillRect(55, 5, 42, 42);
g.setColor(Color.pink);
g.fillRect(105, 5, 42, 42);
g.setColor(Color.green);
g.fillRect(155, 5, 42, 42);
g.setColor(Color.yellow);
g.fillRect(205, 5, 42, 42);
g.setColor(Color.black);
g.fillRect(255, 5, 42, 42);
g.setColor(Color.lightGray);
g.fillRect(305, 5, 42, 42);
g.setColor(Color.orange);
g.fillRect(355, 5, 42, 42);
g.setColor(Color.cyan);
g.fillRect(405, 5, 42, 42);
g.setColor(Color.gray);
g.fillRect(455, 5, 42, 42);
int red = (int)(Math.random()*255);
int green = (int)(Math.random()*255);
int blue = (int)(Math.random()*255);
Color rand = new Color(red,green, blue);
g.setColor(rand);
g.fillRect(505, 5, 42, 42);
int rando = red / 20;
g.setColor(Color.black);
g.drawRect(5, 55, 42, 42);
g.drawRect(5, 105, 42, 42);
g.drawRect(5, 155, 42, 42);
g.drawOval(5, 205, 30, 30);
g.drawOval(5, 255, 40, 40);
g.drawOval(5, 305, 20, 40);
g.drawOval(5, 355, 40, 20);
g.drawRect(5, 405, 30, 30); //splatter tool
g.drawRect(5, 455, 30, 30);
g.drawString("x", 20, 470);
g.drawRect(5, 505, 30, 30);
g.drawString("^",20 ,520);
switch (numColor) {
case 1:
g.setColor(Color.red);
break;
case 2:
g.setColor(Color.blue);
break;
case 3:
g.setColor(Color.pink);
break;
case 4:
g.setColor(Color.green);
break;
case 5:
g.setColor(Color.yellow);
break;
case 6:
g.setColor(Color.black);
break;
case 7:
g.setColor(Color.lightGray);
break;
case 8:
g.setColor(Color.orange);
break;
case 9:
g.setColor(Color.cyan);
break;
case 10:
g.setColor(Color.gray);
break;
case 11:
g.setColor(rand);
break;
}
switch (numTool) {
case 1:
g.fillRect(xClick, yClick, 2, 2);
break;
case 2:
g.fillRect(xClick, yClick, 10, 10);
break;
case 3:
g.fillRect(xClick, yClick, 25, 25);
break;
case 4:
g.fillOval(xClick, yClick, 22, 22);
break;
case 5:
g.fillOval(xClick, yClick, 44, 44);
break;
case 6:
g.fillOval(xClick, yClick, 20, 40);
break;
case 7:
g.fillOval(xClick, yClick, 40, 20);
break;
case 8:
for(int i = 0;i < 50; i++){
g.fillRect(xClick+rando, yClick+rando, 2, 2);
g.fillRect(xClick-rando, yClick+rando, 2, 2);
g.fillRect(xClick+rando, yClick-rando, 2, 2);
g.fillRect(xClick-rando, yClick-rando, 2, 2);
}
break;
case 9:
g.drawString("x", xClick, yClick);
break;
case 10:
g.drawString("^", xClick, yClick);
break;
}
}
public boolean mouseDown(Event e, int x, int y) {
if (red.inside(x, y)) {
numColor = 1;
}
if (blue.inside(x, y)) {
numColor = 2;
}
if (pink.inside(x, y)) {
numColor = 3;
}
if (green.inside(x, y)) {
numColor = 4;
}
if (yellow.inside(x, y)) {
numColor = 5;
}
if (black.inside(x, y)) {
numColor = 6;
}
if (lightGray.inside(x, y)) {
numColor = 7;
}
if (orange.inside(x, y)) {
numColor = 8;
}
if (cyan.inside(x, y)) {
numColor = 9;
}
if (gray.inside(x, y)) {
numColor = 10;
}
if (rand.inside(x, y)) {
numColor = 11;
}
if (smallBox.inside(x, y)) {
numTool = 1;
}
if (mediumBox.inside(x, y)) {
numTool = 2;
}
if (largeBox.inside(x, y)) {
numTool = 3;
}
if (smallCirc.inside(x, y)) {
numTool = 4;
}
if (largeCirc.inside(x, y)) {
numTool = 5;
}
if (vertOval.inside(x, y)) {
numTool = 6;
}
if (horOval.inside(x, y)) {
numTool = 7;
}
if (splatter.inside(x, y)) {
numTool = 8;
}
if (ex.inside(x, y)) {
numTool = 9;
}
if (carat.inside(x, y)) {
numTool = 10;
}
xClick = x;
yClick = y;
repaint();
return true;
}
public boolean mouseUp(Event e, int x, int y) {
return true;
}
public boolean mouseDrag(Event e, int x, int y)
{
xClick = x;
yClick = y;
repaint();
return true;
}
public void update(Graphics g) {
paint(g);
}
}
Comments