package graphics15;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.JFrame;
import java.util.Random;
/**
* William Smolinski
* CISS 241
* Exercise 15-2a: draws randomly colored and thick horizontal lines down the frame
*/
public class ex152a extends JFrame
{
//Used so that it only paints once on startup
private boolean first = true;
public ex152a()
{
setSize(500, 500);
setVisible(true);
}
public void paint(Graphics g)
{
//Won't do anything the first time it is called (was being called twice on startup and causing the lines to overlap)
if(!first)
{
Graphics2D graphics2d = (Graphics2D) g;
int yIncrement = 10;
Color[] colors = {Color.black, Color.orange, Color.blue, Color.green, Color.darkGray, Color.cyan, Color.gray};
Random random = new Random();
int randomNum = 0;
Line2D.Float l;
BasicStroke b1;
for(int i = 0; i < getHeight(); i += yIncrement)
{
//Getting random color
randomNum = random.nextInt(colors.length);
graphics2d.setColor(colors[randomNum]);
//Getting random width
randomNum = random.nextInt(getWidth()) + 1;
l = new Line2D.Float(0, i, randomNum, i);
//Getting random thickness
randomNum = random.nextInt(yIncrement) + 1;
b1 = new BasicStroke(randomNum, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
graphics2d.draw(l);
graphics2d.setStroke(b1);
}
}
else
{
first = false;
}
}
public static void main(String[] args)
{
ex152a f = new ex152a();
}
}