In software engineering actors are users or systems that a program interacts with. Actors are represented in diagrams as stick figures.
In this session you and your partner will create an actor shape that can be displayed in a graphics window. Users can specify the size and position of the actor shape.
Here is what your program output should look like:
Your ActorShape class will be very similar to the MouseShape class developed at the bottom of:
http://www.cs.sjsu.edu/faculty/pearce/cs46a/graphics.htm
Send the complete declaration of ActorShape in an email to cs46a_grader@yahoo.com. The subject of the email should be "session 4". Be sure to include your partner's name in the email.
Here are some include statements you will need:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
Here is a standard viewer class you will need:
public class ActorViewer {
public static final int FRAME_WIDTH =
300;
public static final int FRAME_HEIGHT =
400;
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(FRAME_WIDTH,
FRAME_HEIGHT);
frame.setTitle("Frame
Viewer");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ActorComponent component = new ActorComponent();
frame.add(component);
frame.setVisible(true);
}
}
Here is the component class you will use:
public class ActorComponent extends JComponent {
private ActorShape actor1;
private ActorShape actor2;
private ActorShape actor3;
public ActorComponent() {
actor1 = new ActorShape(10, 10,
100);
actor2 = new ActorShape(110, 10,
50);
actor3 = new ActorShape(160, 10,
200);
}
public void paintComponent(Graphics
gc) {
Graphics2D gc2d = (Graphics2D)gc;
actor1.draw(gc2d);
actor2.draw(gc2d);
actor3.draw(gc2d);
}
}
Here is the start of the shape class that you must complete:
public class ActorShape {
private int xc, yc, width;
private Ellipse2D.Double face;
private Color faceColor;
private Line2D.Double arms, leftLeg,
rightLeg, torso;
public ActorShape(int x, int y, int w)
{
// initialize all fields here
}
public void draw(Graphics2D gc) {
Color oldColor = gc.getColor();
// gc draws face, torso, arms, and
legs
gc.setColor(oldColor);
}
}
Note that the bounding box of an actor is a square:
Before you begin, use a piece of graph paper to plot the positions
of the body parts relative to xc,
yc, and width.