dbrown
Class GallowsView

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by dbrown.GallowsView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class GallowsView
extends javax.swing.JComponent

A GUI interface that shows how many guesses a user has made in the form of a hanged man. The hanged man has six pieces - a head, a trunk, two arms, and two legs. As the player makes a wrong guess a new body part is added to the hanged man. When the man is complete the game is over. Thus the number of wrong guesses in the Hangman game must match the number of body parts on the hanged man. The view dynamically scales itself to fit the game window. There are no listeners for this view as there is no user input possible in it.

Version:
2011-11-11
Author:
David Brown (from Byron Weber Becker)
See Also:
Serialized Form

Nested Class Summary
private  class GallowsView.GameListener
          Is called by the Hangman game to display the current state of the game when the game is started and whenever a guess is made.
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  java.awt.geom.GeneralPath body
          The path definition for the body of the hanged man.
private  java.awt.geom.GeneralPath gallows
          The path definition for the gallows.
private static java.awt.Color GALLOWS_COLOR
          Various colour constants defined for the view.
private  java.awt.geom.Rectangle2D.Double grass
          The rectangle definition for the grass.
private static java.awt.Color GRASS_COLOR
           
private  java.awt.geom.Ellipse2D.Double head
          The ellipse definition for the head of the hanged man.
private  int hUnit
          The x-axis scaling factor for the graphical display.
private  Hangman model
          The Hangman game object.
private  java.awt.Polygon mountain
          The polygon definition for the mountain.
private static java.awt.Color MOUNTAIN_COLOR
           
private static java.awt.Color PERSON_COLOR
           
private  java.awt.geom.Rectangle2D.Double sky
          The rectangle definition for the sky.
private static java.awt.Color SKY_COLOR
           
private  java.awt.geom.Ellipse2D.Double sun
          The ellipse definition for the sun.
private static java.awt.Color SUN_COLOR
           
private  int wUnit
          The y-axis scaling factor for the graphical display.
 
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
GallowsView(Hangman model)
           
 
Method Summary
private  void drawBackground(java.awt.Graphics2D g)
          Draws the grass, sun, sky, and mountain background to the view.
 void drawGallows(java.awt.Graphics2D g)
          Draws the gallows to the view.
private  void drawPerson(java.awt.Graphics2D g)
          Draws the hanged man segment by segment depending on the number of wrong guesses made by the player.
 void paintComponent(java.awt.Graphics g)
           
private  void registerListeners()
           
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, 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, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, 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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, 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, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

GALLOWS_COLOR

private static final java.awt.Color GALLOWS_COLOR
Various colour constants defined for the view.


GRASS_COLOR

private static final java.awt.Color GRASS_COLOR

MOUNTAIN_COLOR

private static final java.awt.Color MOUNTAIN_COLOR

PERSON_COLOR

private static final java.awt.Color PERSON_COLOR

SKY_COLOR

private static final java.awt.Color SKY_COLOR

SUN_COLOR

private static final java.awt.Color SUN_COLOR

body

private final java.awt.geom.GeneralPath body
The path definition for the body of the hanged man.


gallows

private final java.awt.geom.GeneralPath gallows
The path definition for the gallows.


grass

private final java.awt.geom.Rectangle2D.Double grass
The rectangle definition for the grass.


head

private final java.awt.geom.Ellipse2D.Double head
The ellipse definition for the head of the hanged man.


hUnit

private int hUnit
The x-axis scaling factor for the graphical display.


mountain

private final java.awt.Polygon mountain
The polygon definition for the mountain.


sky

private final java.awt.geom.Rectangle2D.Double sky
The rectangle definition for the sky.


sun

private final java.awt.geom.Ellipse2D.Double sun
The ellipse definition for the sun.


wUnit

private int wUnit
The y-axis scaling factor for the graphical display.


model

private final Hangman model
The Hangman game object.

Constructor Detail

GallowsView

public GallowsView(Hangman model)
Method Detail

drawGallows

public void drawGallows(java.awt.Graphics2D g)
Draws the gallows to the view.

Parameters:
g - - the Graphics2D object used for drawing

paintComponent

public void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

drawBackground

private void drawBackground(java.awt.Graphics2D g)
Draws the grass, sun, sky, and mountain background to the view.

Parameters:
g - - the Graphics2D object used for drawing

drawPerson

private void drawPerson(java.awt.Graphics2D g)
Draws the hanged man segment by segment depending on the number of wrong guesses made by the player.

Parameters:
g - - the Graphics2D object used for drawing

registerListeners

private void registerListeners()