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.