edu.princeton.cs.algs4.growingtree.framework
Class DrawingJPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by edu.princeton.cs.algs4.growingtree.framework.DrawingJPanel
All Implemented Interfaces:
java.awt.event.ComponentListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
Direct Known Subclasses:
NodeAndLinkAnimatingJPanel, NodeDrawingJPanel, TreeJPanel

public class DrawingJPanel
extends javax.swing.JPanel
implements java.awt.event.ComponentListener

A specific type of JPanel for the dedicated purpose of drawing some sort of node or tree onto the panel. Everything within the class is implemented except the draw method. This must be implemented by extending class to activate the drawing.

Version:
1.3 9/15/01
Author:
Corey Sanders
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.BaselineResizeBehavior
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
DrawingJPanel()
          Sole Constructor for the JPanel that draws.
 
Method Summary
 void componentHidden(java.awt.event.ComponentEvent e)
          Called when the component is hidden.
 void componentMoved(java.awt.event.ComponentEvent e)
          Called when the component is Moved.
 void componentResized(java.awt.event.ComponentEvent e)
          Called when the component is Resized.
 void componentShown(java.awt.event.ComponentEvent e)
          Called when the component is Shown.
 java.awt.geom.Rectangle2D getDrawingArea()
          Gets the drawing area for this panel.
 java.awt.Graphics2D getDrawTreeGraphics()
          Gets the draw Tree Graphics for this panel.
 java.awt.image.BufferedImage getDrawTreeImage()
          Gets the draw Tree Image for this panel.
 boolean isComponentShown()
          Sets whether the tree is shown or not.
 boolean isDrawTree()
          Gets whether the tree needs to be redrawn.
 void paintComponent(java.awt.Graphics g)
          Draws the JPanel.
 void setComponentShown(boolean componentShown)
          Sets whether the tree is shown or not.
 void setDrawTree(boolean drawTree)
          Sets whether the tree needs drawing.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DrawingJPanel

public DrawingJPanel()
Sole Constructor for the JPanel that draws. The super constructor is called. Additionally, the default background is set as white and the comoponent adds it to listen to itself.

Method Detail

getDrawTreeImage

public java.awt.image.BufferedImage getDrawTreeImage()
Gets the draw Tree Image for this panel.

Returns:
BufferedImage set as the drawing image.

getDrawTreeGraphics

public java.awt.Graphics2D getDrawTreeGraphics()
Gets the draw Tree Graphics for this panel.

Returns:
Graphics2D set as the drawing graphics.

isDrawTree

public boolean isDrawTree()
Gets whether the tree needs to be redrawn.

Parameters:
true - if the tree needs drawing.

isComponentShown

public boolean isComponentShown()
Sets whether the tree is shown or not.

Returns:
boolean flag as to whether the tree is shown.

getDrawingArea

public java.awt.geom.Rectangle2D getDrawingArea()
Gets the drawing area for this panel.

Returns:
Rectangle2D rectangle set as the drawing area.

setDrawTree

public void setDrawTree(boolean drawTree)
Sets whether the tree needs drawing.

Parameters:
animating - boolean flag as to whether the tree needs drawing.

setComponentShown

public void setComponentShown(boolean componentShown)
Sets whether the tree is shown or not.

Parameters:
componentShown - boolean flag as to whether the tree is shown.

paintComponent

public void paintComponent(java.awt.Graphics g)
Draws the JPanel. This overides the paintComponent of JPanel, to draw the appropriate image and redraw the graphic if necessary. The drawing is double buffered automatically, but the image is only modified on resizing and a change of node. Therefore, dragging, hiding and so forth, do not change the image.

Overrides:
paintComponent in class javax.swing.JComponent
Parameters:
g - Graphics used to draw to the component.

componentHidden

public void componentHidden(java.awt.event.ComponentEvent e)
Called when the component is hidden. Sets the componentShown as false.

Specified by:
componentHidden in interface java.awt.event.ComponentListener
Parameters:
e - ComponentEvent not used for this particular listening.

componentMoved

public void componentMoved(java.awt.event.ComponentEvent e)
Called when the component is Moved. No action occurs here.

Specified by:
componentMoved in interface java.awt.event.ComponentListener
Parameters:
e - ComponentEvent not used for this particular listening.

componentShown

public void componentShown(java.awt.event.ComponentEvent e)
Called when the component is Shown. Sets the componentShown as true.

Specified by:
componentShown in interface java.awt.event.ComponentListener
Parameters:
e - ComponentEvent not used for this particular listening.

componentResized

public void componentResized(java.awt.event.ComponentEvent e)
Called when the component is Resized. The image is modified according to the resizing of the Component.

Specified by:
componentResized in interface java.awt.event.ComponentListener
Parameters:
e - ComponentEvent not used for this particular listening.