ACM Library

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

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.
 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.
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.
 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.
 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.
 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.
 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.
 String toString()
          Overrides the toString method in Object to produce more readable output.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

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

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

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

getLocation

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

Returns:
The location of this object as a GPoint

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

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

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

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

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

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.


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.


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.


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.


setColor

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

Parameters:
color - The color used to display this object

getColor

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

Returns:
The color used to display this object

setVisible

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

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

isVisible

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

Returns:
true if the object is visible, otherwise false

toString

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

Overrides:
toString in class Object

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

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

addMouseListener

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

Parameters:
listener - Any object that implements the MouseListener interface

removeMouseListener

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

Parameters:
listener - The listener object to remove

addMouseMotionListener

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

Parameters:
listener - Any object that implements the MouseMotionListener interface

removeMouseMotionListener

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

Parameters:
listener - The listener object to remove

addActionListener

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

Parameters:
listener - Any object that implements the ActionListener interface

removeActionListener

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

Parameters:
listener - The listener object to remove

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

fireActionEvent

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

Parameters:
e - The ActionEvent to fire

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.


Last updated: Sat, Aug 22, 2009 • 10:26 PM EDT