Class SwingUI

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--SwingUI
All Implemented Interfaces:
javax.accessibility.Accessible, HangmanUI, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class SwingUI
extends javax.swing.JFrame
implements HangmanUI

This is a Swing graphical user interface to the hangman game. It displays the game board using elementary Swing widgets and allows the player to control the game via buttons. Refer to the user interface prototype.

See Also:
Serialized Form

Field Summary
(package private)  Board board
          the reference to the hangman Board
private  javax.swing.JPanel buttonPanel
          A panel to contain the row of buttons
private  javax.swing.JLabel lblTitle
          The title of the game
private  javax.swing.JLabel lblTurns
          A label for the turn counter
private  javax.swing.JButton[] LetterButtons
          array of buttons for the letters of the alphabet
private  HangmanLogic parent
          the reference to the parent, the HangmanLogic
private  javax.swing.JTextArea txtBoard
          A text area for displaying the guessed letters
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Window
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SwingUI()
          Creates new frame to contain all the user interface components for the game.
 
Method Summary
 void display()
          Make the interface visible
private  void exitForm(java.awt.event.WindowEvent evt)
          Handle window exit: Terminate the application
private  void initComponents()
          This method is called from within the constructor to initialize the form.
private  void LetterButtonActionPerformed(java.awt.event.ActionEvent evt)
          Handle a button press by the user.
private  void makeButtons()
          Create the 26 letter buttons, one for each letter of the alphabet.
 void playAgain()
          Handle end of game, asking if the player wants another game If yes, start a new game, otherwise exit.
 void setBoard(Board theBoard)
          Save a reference to the instance of the Board and then show the board.
 void setParent(HangmanLogic theParent)
          Save a reference to the parent (an instance of HangmanLogic)
 void showBoard()
          Display the current state of the board.
 void showLose()
          Display that the player lost the game.
 void showWin()
          Display that the player won the game.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setIconImage, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

board

Board board
the reference to the hangman Board


buttonPanel

private javax.swing.JPanel buttonPanel
A panel to contain the row of buttons


lblTitle

private javax.swing.JLabel lblTitle
The title of the game


lblTurns

private javax.swing.JLabel lblTurns
A label for the turn counter


LetterButtons

private javax.swing.JButton[] LetterButtons
array of buttons for the letters of the alphabet


parent

private HangmanLogic parent
the reference to the parent, the HangmanLogic


txtBoard

private javax.swing.JTextArea txtBoard
A text area for displaying the guessed letters

Constructor Detail

SwingUI

public SwingUI()
Creates new frame to contain all the user interface components for the game.

Method Detail

display

public void display()
Make the interface visible

Specified by:
display in interface HangmanUI

exitForm

private void exitForm(java.awt.event.WindowEvent evt)
Handle window exit: Terminate the application


initComponents

private void initComponents()
This method is called from within the constructor to initialize the form.


LetterButtonActionPerformed

private void LetterButtonActionPerformed(java.awt.event.ActionEvent evt)
Handle a button press by the user. Determine which letter was chosen.


makeButtons

private void makeButtons()
Create the 26 letter buttons, one for each letter of the alphabet.


playAgain

public void playAgain()
Handle end of game, asking if the player wants another game If yes, start a new game, otherwise exit.

Specified by:
playAgain in interface HangmanUI

setBoard

public void setBoard(Board theBoard)
Save a reference to the instance of the Board and then show the board.

Specified by:
setBoard in interface HangmanUI

setParent

public void setParent(HangmanLogic theParent)
Save a reference to the parent (an instance of HangmanLogic)

Specified by:
setParent in interface HangmanUI

showBoard

public void showBoard()
Display the current state of the board. Specifically, display the turn counter and display the board in some formatted manner.

Specified by:
showBoard in interface HangmanUI

showLose

public void showLose()
Display that the player lost the game. Reveal the solution.

Specified by:
showLose in interface HangmanUI

showWin

public void showWin()
Display that the player won the game.

Specified by:
showWin in interface HangmanUI