canvas
Class PictureComponent

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--canvas.PictureComponent
All Implemented Interfaces:
CanvasComponent, DragComponent, DragSourceListener, EventListener, ImageObserver, MenuContainer, RotatingCanvasComponent, Serializable, Transferable

public class PictureComponent
extends JComponent
implements RotatingCanvasComponent, DragComponent, DragSourceListener, Transferable

Represents an image container that can be added to a DrawingPane

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PictureComponent(BufferedImage img)
          You should not need to use this constructor
PictureComponent(double x, double y, double width, double height, String imageFileName, canvas.DrawingGrid dg)
          Creates a new PictureComponent at the GridCoordinates x and y.
PictureComponent(int x, int y, int width, int height)
          Only use this constructor only if you don't want to set the image file yet.
PictureComponent(int x, int y, int width, int height, String imageFileName)
          Use this constructor to set the Images location and dimensions.
PictureComponent(String imageFileName)
          Constructs a new PictureComponent for the given image file
 
Method Summary
 boolean acceptDrop(Object dropped)
          You should override this method in supclass to get drag/drop to work with your Components.
 void addDragListener()
          Allows this PictureComponent to listen for Drag & Drop
 void addKeyboardListener()
          Allows this PictureComponent to Listen for Arrow Keys Note: Only one shape will listen for key strokes at a time to obtain the focus for this shape, you need to call the Shape's getFocus() method.
 void addMouseListener()
          Allows this PictureComponent to listen for Mouse Events.
 void dragDropEnd(DragSourceDropEvent dsde)
          You should not need to use this method
 void dragEnter(DragSourceDragEvent dsde)
          You should not need to use this method
 void dragExit(DragSourceEvent dse)
          You should not need to use this method
 void dragOver(DragSourceDragEvent dsde)
          You should not need to use this method
 void dropActionChanged(DragSourceDragEvent dsde)
          You should not need to use this method
 canvas.DrawingPane getDrawingPane()
          Returns the Drawing Pane that this PictureComponent has been added too.
 Color getPixel(int x, int y)
          Returns the color of the given pixel.
 Dimension getPreferredSize()
          You should not need to use this method
 Object getTransferData(DataFlavor flavor)
          You should not need to use this method
 DataFlavor[] getTransferDataFlavors()
          You should not need to use this method
 boolean isDataFlavorSupported(DataFlavor flavor)
          You should not need to use this method
 Image loadImage(String imageFile)
          You should not need to use this method
static void main(String[] args)
           
 Object manufactureDroppable()
          You should override this method in subclass to get drag/drop to work with your Components.
 void moveTo(double x, double y)
          Moves the PictureComponent to the given x,y location
 void moveTo(double x, double y, canvas.DrawingGrid dg)
          Moves the PictureComponent to the given DrawingGrid coordinate (x, y).
 boolean okToDrag()
          Returns whether it's OK to drag this object
 void paint(Graphics g)
          you should not need to use this method
 void redraw()
          Use this method whenever you want to update the display of this PictureComponent.
 void removeDragListener()
          Removes this PictureComponents's ability to listen for Drag & Drop
 void removeKeyboardListener()
          Removes this PictureComponent's ability to Listen for Arrow Keys
 void removeMouseListener()
          Removes PictureComponent's ability to listen for Mouse Events.
 void repaint()
          Use redraw() instead.
 void resetBorder()
          You should not need to use this method
 void resizeTo(double width, double height)
          Resizes the picture to the given width and height
 void rotate(double degrees)
          Rotates the PictureComponent the given number of degrees
 void rotateAbout(double degrees, double x, double y)
          Rotates the PictureComponent the given number of degrees about the given x,y coordinates.
 void rotateAbout(double degrees, double x, double y, canvas.DrawingGrid dg)
          Rotates the PictureComponent the given number of degrees about the given DrawingGrid coordinate (x,y)
static void setApplet(Applet a)
           
 void setBounds(double x, double y, double width, double height, canvas.DrawingGrid dg)
           
 void setBounds(int x, int y, int width, int height)
          This method sets the x,y location and the width and height of the PictureComponent.
 void setFeedbackText(String text)
          If this PictureComponent is contained in a ViewFrame, this method will set the text of the ViewFrame's feedbadck label to be the given text
 void setImage(Image img)
          This method is called by the other setImage method.
 void setImage(String imageFileName)
          This sets the image to the given filename
 void setListener(canvas.DefaultListener newListener)
          Will set the listener from the default to your subclass of a DefaultListener so you can obtain function from the listeners
 void setPixel(int x, int y, Color c)
          Sets a specific pixel to a specific color
 void setPixel(int x, int y, int i)
          Sets a specific pixel to a specific color
 void setPixel(int x, int y, int r, int g, int b)
          Sets a specific pixel to a specific color
 void smoothMove(double x, double y, int milliseconds)
          Moves the PictureComponent to the given x,y location in a smooth motion lasting approximately the given number of milliseconds
 void smoothMove(double x, double y, int milliseconds, canvas.DrawingGrid dg)
          Moves the PictureComponent to the given DrawingGrid coordinate (x,y) location in a smooth motion lasting approximately the given number of milliseconds.
 void smoothResize(double width, double height, int milliseconds)
          Resizes the PictureComponent to the given width and height in a smooth motion lasting approximately the given number of milliseconds
 void smoothRotate(double degrees, int milliseconds)
          Rotates the PictureComponent the given number of degrees in a smooth motion lasting approximately the given number of milliseconds
 void smoothRotateAbout(double degrees, double x, double y, int milliseconds)
          Rotates the PictureComponent the given number of degrees about the given x,y location in a smooth motion lasting approximately the given number of milliseconds
 void smoothRotateAbout(double degrees, double x, double y, int milliseconds, canvas.DrawingGrid dg)
          Rotates the PictureComponent the given number of degrees about the given DrawingGrid coordinate (x,y) location in a smooth motion lasting approximately the given number of milliseconds.
 String toString()
           
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, resize, resize, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface canvas.CanvasComponent
getHeight, getWidth
 
Methods inherited from interface canvas.DragComponent
setBorder
 

Constructor Detail

PictureComponent

public PictureComponent(String imageFileName)
Constructs a new PictureComponent for the given image file


PictureComponent

public PictureComponent(int x,
                        int y,
                        int width,
                        int height)
Only use this constructor only if you don't want to set the image file yet.


PictureComponent

public PictureComponent(int x,
                        int y,
                        int width,
                        int height,
                        String imageFileName)
Use this constructor to set the Images location and dimensions.


PictureComponent

public PictureComponent(double x,
                        double y,
                        double width,
                        double height,
                        String imageFileName,
                        canvas.DrawingGrid dg)
Creates a new PictureComponent at the GridCoordinates x and y. Width and height are specified in terms of pixels.


PictureComponent

public PictureComponent(BufferedImage img)
You should not need to use this constructor

Method Detail

redraw

public void redraw()
Use this method whenever you want to update the display of this PictureComponent. For example, if you have made extensive use of setPixel to fill in this image, you should redraw() it so that the changes are immediately reflected on the display. Display is affected *before* this method returns, which is untrue for a call to repaint().

Specified by:
redraw in interface CanvasComponent

repaint

public void repaint()
Use redraw() instead. This method must be called from Swing's event-dispatching thread to be guaranteed immediate execution. redraw() will cause a repaint to be called from that thread.

Overrides:
repaint in class Component

setApplet

public static void setApplet(Applet a)

setImage

public void setImage(String imageFileName)
This sets the image to the given filename


getDrawingPane

public canvas.DrawingPane getDrawingPane()
Returns the Drawing Pane that this PictureComponent has been added too.


setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
This method sets the x,y location and the width and height of the PictureComponent.

Overrides:
setBounds in class Component

setBounds

public void setBounds(double x,
                      double y,
                      double width,
                      double height,
                      canvas.DrawingGrid dg)

moveTo

public void moveTo(double x,
                   double y)
Moves the PictureComponent to the given x,y location

Specified by:
moveTo in interface CanvasComponent

moveTo

public void moveTo(double x,
                   double y,
                   canvas.DrawingGrid dg)
Moves the PictureComponent to the given DrawingGrid coordinate (x, y).


smoothMove

public void smoothMove(double x,
                       double y,
                       int milliseconds)
Moves the PictureComponent to the given x,y location in a smooth motion lasting approximately the given number of milliseconds

Specified by:
smoothMove in interface CanvasComponent

smoothMove

public void smoothMove(double x,
                       double y,
                       int milliseconds,
                       canvas.DrawingGrid dg)
Moves the PictureComponent to the given DrawingGrid coordinate (x,y) location in a smooth motion lasting approximately the given number of milliseconds.


resizeTo

public void resizeTo(double width,
                     double height)
Resizes the picture to the given width and height

Specified by:
resizeTo in interface CanvasComponent

smoothResize

public void smoothResize(double width,
                         double height,
                         int milliseconds)
Resizes the PictureComponent to the given width and height in a smooth motion lasting approximately the given number of milliseconds

Specified by:
smoothResize in interface CanvasComponent

rotate

public void rotate(double degrees)
Rotates the PictureComponent the given number of degrees

Specified by:
rotate in interface RotatingCanvasComponent
Parameters:
degrees - the number of degrees counter-clockwise the PictureComponent is rotated

smoothRotate

public void smoothRotate(double degrees,
                         int milliseconds)
Rotates the PictureComponent the given number of degrees in a smooth motion lasting approximately the given number of milliseconds

Specified by:
smoothRotate in interface RotatingCanvasComponent

rotateAbout

public void rotateAbout(double degrees,
                        double x,
                        double y)
Rotates the PictureComponent the given number of degrees about the given x,y coordinates.

Specified by:
rotateAbout in interface RotatingCanvasComponent

rotateAbout

public void rotateAbout(double degrees,
                        double x,
                        double y,
                        canvas.DrawingGrid dg)
Rotates the PictureComponent the given number of degrees about the given DrawingGrid coordinate (x,y)


smoothRotateAbout

public void smoothRotateAbout(double degrees,
                              double x,
                              double y,
                              int milliseconds)
Rotates the PictureComponent the given number of degrees about the given x,y location in a smooth motion lasting approximately the given number of milliseconds

Specified by:
smoothRotateAbout in interface RotatingCanvasComponent

smoothRotateAbout

public void smoothRotateAbout(double degrees,
                              double x,
                              double y,
                              int milliseconds,
                              canvas.DrawingGrid dg)
Rotates the PictureComponent the given number of degrees about the given DrawingGrid coordinate (x,y) location in a smooth motion lasting approximately the given number of milliseconds.


setPixel

public void setPixel(int x,
                     int y,
                     int i)
Sets a specific pixel to a specific color

Parameters:
x - The x coordiante
y - The y coordinate
i - The integer containing all 3 color values, ie 0xFF00FF

setPixel

public void setPixel(int x,
                     int y,
                     int r,
                     int g,
                     int b)
Sets a specific pixel to a specific color

Parameters:
x - The x coordinate
y - The y coordinate
r - The Red component, 0-255
g - The Green component, 0-255

setPixel

public void setPixel(int x,
                     int y,
                     Color c)
Sets a specific pixel to a specific color

Parameters:
x - The x coordinate
y - The y coordiante
c - The Color to set the pixel to

getPixel

public Color getPixel(int x,
                      int y)
Returns the color of the given pixel.

Parameters:
x - The x coordinate
y - The y coordiante

main

public static void main(String[] args)

toString

public String toString()
Overrides:
toString in class Component

setImage

public void setImage(Image img)
This method is called by the other setImage method. You should not need to call it.


getPreferredSize

public Dimension getPreferredSize()
You should not need to use this method

Overrides:
getPreferredSize in class JComponent

paint

public void paint(Graphics g)
you should not need to use this method

Overrides:
paint in class JComponent

loadImage

public Image loadImage(String imageFile)
You should not need to use this method


manufactureDroppable

public Object manufactureDroppable()
You should override this method in subclass to get drag/drop to work with your Components.

Specified by:
manufactureDroppable in interface DragComponent

acceptDrop

public boolean acceptDrop(Object dropped)
You should override this method in supclass to get drag/drop to work with your Components.

Specified by:
acceptDrop in interface DragComponent

okToDrag

public boolean okToDrag()
Description copied from interface: DragComponent
Returns whether it's OK to drag this object

Specified by:
okToDrag in interface DragComponent

addMouseListener

public void addMouseListener()
Allows this PictureComponent to listen for Mouse Events.


removeMouseListener

public void removeMouseListener()
Removes PictureComponent's ability to listen for Mouse Events.


addDragListener

public void addDragListener()
Allows this PictureComponent to listen for Drag & Drop


removeDragListener

public void removeDragListener()
Removes this PictureComponents's ability to listen for Drag & Drop


addKeyboardListener

public void addKeyboardListener()
Allows this PictureComponent to Listen for Arrow Keys Note: Only one shape will listen for key strokes at a time to obtain the focus for this shape, you need to call the Shape's getFocus() method.


removeKeyboardListener

public void removeKeyboardListener()
Removes this PictureComponent's ability to Listen for Arrow Keys


setListener

public void setListener(canvas.DefaultListener newListener)
Will set the listener from the default to your subclass of a DefaultListener so you can obtain function from the listeners


setFeedbackText

public void setFeedbackText(String text)
If this PictureComponent is contained in a ViewFrame, this method will set the text of the ViewFrame's feedbadck label to be the given text

Specified by:
setFeedbackText in interface CanvasComponent

getTransferData

public Object getTransferData(DataFlavor flavor)
You should not need to use this method

Specified by:
getTransferData in interface Transferable

getTransferDataFlavors

public DataFlavor[] getTransferDataFlavors()
You should not need to use this method

Specified by:
getTransferDataFlavors in interface Transferable

isDataFlavorSupported

public boolean isDataFlavorSupported(DataFlavor flavor)
You should not need to use this method

Specified by:
isDataFlavorSupported in interface Transferable

dragDropEnd

public void dragDropEnd(DragSourceDropEvent dsde)
You should not need to use this method

Specified by:
dragDropEnd in interface DragSourceListener

dragEnter

public void dragEnter(DragSourceDragEvent dsde)
You should not need to use this method

Specified by:
dragEnter in interface DragSourceListener

dragExit

public void dragExit(DragSourceEvent dse)
You should not need to use this method

Specified by:
dragExit in interface DragSourceListener

dragOver

public void dragOver(DragSourceDragEvent dsde)
You should not need to use this method

Specified by:
dragOver in interface DragSourceListener

dropActionChanged

public void dropActionChanged(DragSourceDragEvent dsde)
You should not need to use this method

Specified by:
dropActionChanged in interface DragSourceListener

resetBorder

public void resetBorder()
You should not need to use this method

Specified by:
resetBorder in interface DragComponent