acm.graphics
Class GObject

java.lang.Object
  extended by acm.graphics.GObject
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
GArc, GCompound, GImage, GLabel, GLine, GOval, GPen, GPolygon, GRect, GTurtle

public abstract class GObject
extends Object
implements Cloneable, Serializable

This class is the common superclass of all graphical objects that can be displayed on a GCanvas. Because it is an abstract class, you are not allowed to construct an object whose class is GObject directly. What you do instead is construct one of the concrete subclasses like GRect or GLine. The purpose of this class definition is to define methods that apply to all graphical objects regardless of their specific class.

The GObject class implements the Serializable interface by saving all of the internal state of the object. The parent, however, is saved only if the parent is a GCompound.

See Also:
Serialized Form

Constructor Summary
protected GObject()
          Constructs a new GObject and initializes its state.
 
Method Summary
 void addActionListener(ActionListener listener)
          Adds an action listener to this graphical object.
 void addMouseListener(MouseListener listener)
          Adds a mouse listener to this graphical object.
 void addMouseMotionListener(MouseMotionListener listener)
          Adds a mouse motion listener to this graphical object.
protected  boolean areMouseListenersEnabled()
          Returns true if mouse listeners have ever been assigned to this object.
protected static String colorName(Color color)
          Translates a color to a string representation.
 boolean contains(double x, double y)
          Checks to see whether a point is inside the object.
 boolean contains(GPoint pt)
          Checks to see whether a point is inside the object.
 void fireActionEvent(ActionEvent e)
          Triggers an action event for this graphical object.
 void fireActionEvent(String actionCommand)
          Triggers an action event for this graphical object with the specified action command.
protected  void fireMouseListeners(MouseEvent e)
          Sends the event to the appropriate listener.
abstract  GRectangle getBounds()
          Returns the bounding box of this object, which is defined to be the smallest rectangle that covers everything drawn by the figure.
 Color getColor()
          Returns the color used to display this object.
protected  Component getComponent()
          Returns the component in which this object is installed, or null if none exists.
 double getHeight()
          Returns the height of this object, which is defined to be the height of the bounding box.
 GPoint getLocation()
          Returns the location of this object as a GPoint.
protected  Color getObjectColor()
          This method returns the color set for this specific object, which may be null.
 GContainer getParent()
          Returns the parent of this object, which is the canvas or compound object in which it is enclosed.
 GDimension getSize()
          Returns the size of the bounding box for this object.
 double getWidth()
          Returns the width of this object, which is defined to be the width of the bounding box.
 double getX()
          Returns the x-coordinate of the object.
 double getY()
          Returns the y-coordinate of the object.
 boolean isVisible()
          Checks to see whether this object is visible.
 void move(double dx, double dy)
          Moves the object on the screen using the displacements dx and dy.
 void movePolar(double r, double theta)
          Moves the object using displacements given in polar coordinates.
abstract  void paint(Graphics g)
          All subclasses of GObject must define a paint method which allows the object to draw itself on the Graphics context passed in as the parameter g.
protected  void paintObject(Graphics g)
          Paints the object by setting up the necessary parameters and then dispatching to the paint procedure for this object.
protected  String paramString()
          Returns a string indicating the parameters of this object.
 void pause(double milliseconds)
          Delays the calling thread for the specified time, which is expressed in milliseconds.
 void removeActionListener(ActionListener listener)
          Removes an action listener from this graphical object.
 void removeMouseListener(MouseListener listener)
          Removes a mouse listener from this graphical object.
 void removeMouseMotionListener(MouseMotionListener listener)
          Removes a mouse motion listener from this graphical object.
protected  void repaint()
          Signals that the object needs to be repainted.
 void sendBackward()
          Moves this object one step toward the back in the z dimension.
 void sendForward()
          Moves this object one step toward the front in the z dimension.
 void sendToBack()
          Moves this object to the back of the display in the z dimension.
 void sendToFront()
          Moves this object to the front of the display in the z dimension.
 void setColor(Color color)
          Sets the color used to display this object.
 void setLocation(double x, double y)
          Sets the location of this object to the point (x, y).
 void setLocation(GPoint pt)
          Sets the location of this object to the specified point.
 void setParent(GContainer parent)
          Sets the parent of this object, which should be called only by the GContainer in which this is installed.
 void setVisible(boolean visible)
          Sets whether this object is visible.
protected  void start()
          Starts a GraphicsProgram containing this object.
protected  void start(String[] args)
          Starts a GraphicsProgram containing this object, passing it the specified arguments.
 String toString()
          Overrides the toString method in Object to produce more readable output.
protected  void updateEnabledList()
          Tells the parent to update its list of enabled objects.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GObject

protected GObject()
Constructs a new GObject and initializes its state. This constructor is never called explicitly, but is instead invoked by the constructors of its subclasses.

Method Detail

addActionListener

public void addActionListener(ActionListener listener)
Adds an action listener to this graphical object.

Parameters:
listener - Any object that implements the ActionListener interface

addMouseListener

public void addMouseListener(MouseListener listener)
Adds a mouse listener to this graphical object.

Parameters:
listener - Any object that implements the MouseListener interface

addMouseMotionListener

public void addMouseMotionListener(MouseMotionListener listener)
Adds a mouse motion listener to this graphical object.

Parameters:
listener - Any object that implements the MouseMotionListener interface

areMouseListenersEnabled

protected boolean areMouseListenersEnabled()
Returns true if mouse listeners have ever been assigned to this object.

Returns:
true if mouse listeners have been enabled in this object

colorName

protected static String colorName(Color color)
Translates a color to a string representation.


contains

public boolean contains(double x,
                        double y)
Checks to see whether a point is inside the object. By default, this method simply checks to see if the point is inside the bounding box. Many subclasses will need to override this to check whether the point is contained in the shape.

Parameters:
x - The x-coordinate of the point being tested
y - The y-coordinate of the point being tested
Returns:
true if the point (xy) is inside the object, and false otherwise

contains

public final boolean contains(GPoint pt)
Checks to see whether a point is inside the object.

Parameters:
pt - The point being tested
Returns:
true if the point is inside the object, and false otherwise

fireActionEvent

public void fireActionEvent(ActionEvent e)
Triggers an action event for this graphical object.

Parameters:
e - The ActionEvent to fire

fireActionEvent

public void fireActionEvent(String actionCommand)
Triggers an action event for this graphical object with the specified action command.

Parameters:
actionCommand - The action command to include in the event

fireMouseListeners

protected void fireMouseListeners(MouseEvent e)
Sends the event to the appropriate listener.

Parameters:
e - The MouseEvent that triggered this response

getBounds

public abstract GRectangle getBounds()
Returns the bounding box of this object, which is defined to be the smallest rectangle that covers everything drawn by the figure. The coordinates of this rectangle do not necessarily match the location returned by getLocation. Given a GLabel object, for example, getLocation returns the coordinates of the point on the baseline at which the string begins; getBounds, by contrast, returns a rectangle that covers the entire window area occupied by the string.

Returns:
The bounding box for this object

getColor

public Color getColor()
Returns the color used to display this object.

Returns:
The color used to display this object

getComponent

protected Component getComponent()
Returns the component in which this object is installed, or null if none exists.

Returns:
The component in which this object is installed, or null if none exists

getHeight

public double getHeight()
Returns the height of this object, which is defined to be the height of the bounding box.

Returns:
The height of this object on the screen

getLocation

public GPoint getLocation()
Returns the location of this object as a GPoint.

Returns:
The location of this object as a GPoint

getObjectColor

protected Color getObjectColor()
This method returns the color set for this specific object, which may be null. It differs from getColor in that it does not walk up the containment chain.


getParent

public GContainer getParent()
Returns the parent of this object, which is the canvas or compound object in which it is enclosed.

Returns:
The parent of this object

getSize

public GDimension getSize()
Returns the size of the bounding box for this object.

Returns:
The size of this object

getWidth

public double getWidth()
Returns the width of this object, which is defined to be the width of the bounding box.

Returns:
The width of this object on the screen

getX

public double getX()
Returns the x-coordinate of the object.

Returns:
The x-coordinate of the object

getY

public double getY()
Returns the y-coordinate of the object.

Returns:
The y-coordinate of the object

isVisible

public boolean isVisible()
Checks to see whether this object is visible.

Returns:
true if the object is visible, otherwise false

move

public void move(double dx,
                 double dy)
Moves the object on the screen using the displacements dx and dy.

Parameters:
dx - The distance to move the object in the x direction (positive is rightward)
dy - The distance to move the object in the y direction (positive is downward)

movePolar

public final void movePolar(double r,
                            double theta)
Moves the object using displacements given in polar coordinates. The parameter r specifies the distance to move and theta specifies the angle in which the motion occurs. The angle is measured in degrees increasing counterclockwise from the +x axis.

Parameters:
r - The distance to move
theta - The angle in which to move, measured in degrees increasing counterclockwise from the +x axis

paint

public abstract void paint(Graphics g)
All subclasses of GObject must define a paint method which allows the object to draw itself on the Graphics context passed in as the parameter g.

Parameters:
g - The graphics context into which the painting is done

paintObject

protected void paintObject(Graphics g)
Paints the object by setting up the necessary parameters and then dispatching to the paint procedure for this object.


paramString

protected String paramString()
Returns a string indicating the parameters of this object.


pause

public void pause(double milliseconds)
Delays the calling thread for the specified time, which is expressed in milliseconds. Unlike Thread.sleep, this method never throws an exception.

Parameters:
milliseconds - The sleep time in milliseconds

removeActionListener

public void removeActionListener(ActionListener listener)
Removes an action listener from this graphical object.

Parameters:
listener - The listener object to remove

removeMouseListener

public void removeMouseListener(MouseListener listener)
Removes a mouse listener from this graphical object.

Parameters:
listener - The listener object to remove

removeMouseMotionListener

public void removeMouseMotionListener(MouseMotionListener listener)
Removes a mouse motion listener from this graphical object.

Parameters:
listener - The listener object to remove

repaint

protected void repaint()
Signals that the object needs to be repainted.


sendBackward

public void sendBackward()
Moves this object one step toward the back in the z dimension. If it was already at the back of the stack, nothing happens.


sendForward

public void sendForward()
Moves this object one step toward the front in the z dimension. If it was already at the front of the stack, nothing happens.


sendToBack

public void sendToBack()
Moves this object to the back of the display in the z dimension. By moving it to the back, this object will appear to be behind the other graphical objects on the display and may be obscured by other objects in front.


sendToFront

public void sendToFront()
Moves this object to the front of the display in the z dimension. By moving it to the front, this object will appear to be on top of the other graphical objects on the display and may hide any objects that are further back.


setColor

public void setColor(Color color)
Sets the color used to display this object.

Parameters:
color - The color used to display this object

setLocation

public void setLocation(double x,
                        double y)
Sets the location of this object to the point (x, y).

Parameters:
x - The new x-coordinate for the object
y - The new y-coordinate for the object

setLocation

public final void setLocation(GPoint pt)
Sets the location of this object to the specified point.

Parameters:
pt - The new location for this object

setParent

public void setParent(GContainer parent)
Sets the parent of this object, which should be called only by the GContainer in which this is installed. The serialization behavior of the parent data depends on the parent type. Because a GCompound is serializable, it needs to be maintained in a nontransient variable; other parent classes are transient, so that these parents are not recorded in the serial form.


setVisible

public void setVisible(boolean visible)
Sets whether this object is visible.

Parameters:
visible - true to make the object visible, false to hide it

start

protected void start()
Starts a GraphicsProgram containing this object.


start

protected void start(String[] args)
Starts a GraphicsProgram containing this object, passing it the specified arguments.

Parameters:
args - The array of arguments

toString

public String toString()
Overrides the toString method in Object to produce more readable output.

Overrides:
toString in class Object

updateEnabledList

protected void updateEnabledList()
Tells the parent to update its list of enabled objects.