main
Class EangTermProject

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by java.applet.Applet
                  extended by javax.swing.JApplet
                      extended by main.EangTermProject
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.lang.Runnable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.MenuListener, javax.swing.RootPaneContainer

public class EangTermProject
extends javax.swing.JApplet
implements javax.swing.event.MenuListener, java.awt.event.ActionListener, java.awt.event.WindowListener, java.lang.Runnable

Created on October 27, 2006, 6:01 PM
The main frame for the othello applet.
Sets up the menus and the game board. Also designed to run as a stand alone application.
Refactored: removed the cell array into a seperate panel.
Changed the current player panel to a more specific panel to display additional information not included in the basic othello cell, such as a string "Current player = White"
t.3 adds updating the players scores and starting a new game.
t.4 added support for playing a networked game.

Version:
t.4
Author:
Eric Angeli
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JApplet
javax.swing.JApplet.AccessibleJApplet
 
Nested classes/interfaces inherited from class java.applet.Applet
java.applet.Applet.AccessibleApplet
 
Nested classes/interfaces inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JApplet
accessibleContext, rootPane, rootPaneCheckingEnabled
 
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
EangTermProject()
          Creates a new instance of EangTermProject
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent aevnt)
          Handles menu actions, such as start.
 void configHosting()
          Configuration for hosting a game.
 void countPieces()
          Counts the pieces each player has on the board.
 void createConnectSplash(java.lang.String data)
          Creats a splash screen displayed when connecting.
 void determineColor(java.lang.String data)
          Determine the player colors.
 void disconnect()
          disconnects from the networked game.
 void doConnection(java.lang.String connectString)
          Connectec to a remote host.
 void endGame()
          Ends the game.
 void getMyColor()
          Get the connecting players color.
 java.lang.String getOpponnentColor()
          Get the opponent's color.
 java.lang.String getPlayer()
          Gets teh player.
 java.lang.Thread getRunner()
          Gets the thread.
 void init()
          Initializes the applet.
 void initBoard()
          Initializes the gameboard and adds the cells to the panel.
 void initIntroSplash()
          Initializes the intro splash panel.
 void initMenu()
          Sets up the menu.
 void initNetMenu()
          Initializes the network menu.
 void initPlayerSquare()
          Creates and adds the current player panel.
 void initScoreSquare()
          Creates and adds the player score panel.
 void iPlacedPiece()
          Handles a piece placed on the board.
 boolean isRunning()
          Gets the current running state.
 boolean isWaitingForColor()
          If the game is still waiting for the color fo the player.
static void main(java.lang.String[] args)
          The main function that starts the appilication.
 void menuCanceled(javax.swing.event.MenuEvent mevent)
          Handles menu canceled events.
 void menuDeselected(javax.swing.event.MenuEvent mevent)
          Sets the games pause state to the original pause state.
 void menuSelected(javax.swing.event.MenuEvent mevent)
          Pauses the game when a menu is clicked.
 void moveEnemy(java.lang.String enemyPosition)
          Handle moving an enemy over.
 void newGame()
          Starts a new game.
 void pauseGame(boolean pg)
          Changes the pause state of the game.
 boolean placeEnemy(java.lang.String enemyPosition)
          Place an enemy piece on the board.
 void removeComms()
          removes the comms panel.
 void removeCurrentPlayer()
          removes the current player panel.
 void removeGameBoard()
          removes the gameboard panel.
 void removeIntro()
          removes the intro/splash panel.
 void removeScore()
          removes the score panel.
 void resetBackground()
          Resets the backgrounds on the game board.
 void resetCurrentPlayer()
          Resets the current player color.
 void run()
          Handles running the thread.
 void sendOpponnentColor()
          Send the connecting players color.
 void sendPlacedPiece(java.awt.Point myPosition)
          Send the point of the piece placed on the board.
 void sendPosition(java.awt.Point myPosition)
          Send the position.
 void setActivePlayer()
          Sets the active player.
 void setBoardSkip()
          Set the board when a players turn is skipped.
 void setCommsConnected(boolean connected)
          Sets the connected state of communications.
 void setCurrentPlayer()
          Sets the current player color that is placing a piece on the board.
 void setPlayer(java.lang.String player)
          Sets the player string.
 void setPlayerColor(java.lang.String data)
          Sets the player color
 void setRunner(java.lang.Thread runner)
          Sets the thread.
 void setRunning(boolean running)
          Set the running state.
 void setUpColor()
          Set up the color of the players playing.
 void setUpConnection()
          Set up connection configuration.
 void setWaitingForColor(boolean waitingForColor)
          Set status of waiting for the color.
 void startApp()
          Start the thread for the main app.
 void startHosting(java.lang.String connectString)
          Starts hosting.
 boolean stillValidMoves()
          Checks to see if there are still valid moves.
 void stop()
          Stops the game and all threads running.
 void stopApp()
          Stops the thread from running.
 void stopComms()
          Stops the comms thread.
 void stopCurrentPlayer()
          stops the current player thread.
 void stopCurrentScore()
          Stops the current score thread.
 void stopGameBoard()
          Stops the game board thread.
 void stopIntro()
          Stops the intro/splash thread.
 void updateConnect(java.lang.String updateWith)
          Updates teh comms splash panel.
 void windowActivated(java.awt.event.WindowEvent we)
          Handles the window activated event.
 void windowClosed(java.awt.event.WindowEvent we)
          Handles the window closed event.
 void windowClosing(java.awt.event.WindowEvent we)
          Handles the window closing event.
 void windowDeactivated(java.awt.event.WindowEvent we)
          Handles the window deactivated event.
 void windowDeiconified(java.awt.event.WindowEvent we)
          Handles the window deiconified event.
 void windowIconified(java.awt.event.WindowEvent we)
          Handles the window inconified event.
 void windowOpened(java.awt.event.WindowEvent we)
          Handles the window opened event.
 
Methods inherited from class javax.swing.JApplet
addImpl, createRootPane, getAccessibleContext, getContentPane, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, remove, setContentPane, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.applet.Applet
destroy, getAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start
 
Methods inherited from class java.awt.Panel
addNotify
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

EangTermProject

public EangTermProject()
Creates a new instance of EangTermProject

Method Detail

init

public void init()
Initializes the applet.

Overrides:
init in class java.applet.Applet

initMenu

public void initMenu()
Sets up the menu.


initNetMenu

public void initNetMenu()
Initializes the network menu.


initIntroSplash

public void initIntroSplash()
Initializes the intro splash panel.


initBoard

public void initBoard()
Initializes the gameboard and adds the cells to the panel.


initScoreSquare

public void initScoreSquare()
Creates and adds the player score panel.


initPlayerSquare

public void initPlayerSquare()
Creates and adds the current player panel.


pauseGame

public void pauseGame(boolean pg)
Changes the pause state of the game.

Parameters:
pg - The new pause state of the game

stop

public void stop()
Stops the game and all threads running.

Overrides:
stop in class java.applet.Applet

stopGameBoard

public void stopGameBoard()
Stops the game board thread.


stopCurrentPlayer

public void stopCurrentPlayer()
stops the current player thread.


stopCurrentScore

public void stopCurrentScore()
Stops the current score thread.


stopComms

public void stopComms()
Stops the comms thread.


stopIntro

public void stopIntro()
Stops the intro/splash thread.


disconnect

public void disconnect()
disconnects from the networked game.


createConnectSplash

public void createConnectSplash(java.lang.String data)
Creats a splash screen displayed when connecting.

Parameters:
data - The string to be displayed in the network splash screen.

removeIntro

public void removeIntro()
removes the intro/splash panel.


removeGameBoard

public void removeGameBoard()
removes the gameboard panel.


removeCurrentPlayer

public void removeCurrentPlayer()
removes the current player panel.


removeScore

public void removeScore()
removes the score panel.


removeComms

public void removeComms()
removes the comms panel.


newGame

public void newGame()
Starts a new game.


endGame

public void endGame()
Ends the game. Displays the final score and the winner.


setCurrentPlayer

public void setCurrentPlayer()
Sets the current player color that is placing a piece on the board.


resetCurrentPlayer

public void resetCurrentPlayer()
Resets the current player color.


countPieces

public void countPieces()
Counts the pieces each player has on the board.


stillValidMoves

public boolean stillValidMoves()
Checks to see if there are still valid moves.

Returns:
True if there are still valid moves, otherwise false.

configHosting

public void configHosting()
Configuration for hosting a game.


startHosting

public void startHosting(java.lang.String connectString)
Starts hosting. Waits for a connection.

Parameters:
connectString - The string to base the communications configuration on.

updateConnect

public void updateConnect(java.lang.String updateWith)
Updates teh comms splash panel.

Parameters:
updateWith - The update to the comms.

setUpConnection

public void setUpConnection()
Set up connection configuration.


doConnection

public void doConnection(java.lang.String connectString)
Connectec to a remote host.

Parameters:
connectString - The configuration string to use when connecting.

sendPosition

public void sendPosition(java.awt.Point myPosition)
Send the position.

Parameters:
myPosition - The position to send.

sendPlacedPiece

public void sendPlacedPiece(java.awt.Point myPosition)
Send the point of the piece placed on the board.

Parameters:
myPosition - The point of the piece placed.

setUpColor

public void setUpColor()
Set up the color of the players playing.


determineColor

public void determineColor(java.lang.String data)
Determine the player colors.

Parameters:
data - The string containing the players data for determining the color.

getMyColor

public void getMyColor()
Get the connecting players color.


sendOpponnentColor

public void sendOpponnentColor()
Send the connecting players color.


getOpponnentColor

public java.lang.String getOpponnentColor()
Get the opponent's color.

Returns:
The color of the opponent

setPlayerColor

public void setPlayerColor(java.lang.String data)
Sets the player color

Parameters:
data - The player color as a string.

setCommsConnected

public void setCommsConnected(boolean connected)
Sets the connected state of communications.

Parameters:
connected - The new connected state. True for connected, otherwise false.

iPlacedPiece

public void iPlacedPiece()
Handles a piece placed on the board.


setPlayer

public void setPlayer(java.lang.String player)
Sets the player string.

Parameters:
player - The string representation of the players color.

getPlayer

public java.lang.String getPlayer()
Gets teh player.

Returns:
The player.

resetBackground

public void resetBackground()
Resets the backgrounds on the game board.


setActivePlayer

public void setActivePlayer()
Sets the active player.


moveEnemy

public void moveEnemy(java.lang.String enemyPosition)
Handle moving an enemy over.

Parameters:
enemyPosition - The enemy position.

placeEnemy

public boolean placeEnemy(java.lang.String enemyPosition)
Place an enemy piece on the board.

Parameters:
enemyPosition - The enemy poisition of the piece placed.
Returns:
True if placed successfully, otherwise false.

menuCanceled

public void menuCanceled(javax.swing.event.MenuEvent mevent)
Handles menu canceled events.

Specified by:
menuCanceled in interface javax.swing.event.MenuListener
Parameters:
mevent - The menu event canceled.

menuSelected

public void menuSelected(javax.swing.event.MenuEvent mevent)
Pauses the game when a menu is clicked.
Keeps the menu list from being painted over.

Specified by:
menuSelected in interface javax.swing.event.MenuListener
Parameters:
mevent - The menu selected.

menuDeselected

public void menuDeselected(javax.swing.event.MenuEvent mevent)
Sets the games pause state to the original pause state.

Specified by:
menuDeselected in interface javax.swing.event.MenuListener
Parameters:
mevent - The menu unselcted.

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent aevnt)
Handles menu actions, such as start.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
aevnt - The event fired.

setBoardSkip

public void setBoardSkip()
Set the board when a players turn is skipped.


windowDeactivated

public void windowDeactivated(java.awt.event.WindowEvent we)
Handles the window deactivated event.

Specified by:
windowDeactivated in interface java.awt.event.WindowListener
Parameters:
we - The source of the window event.

windowActivated

public void windowActivated(java.awt.event.WindowEvent we)
Handles the window activated event.

Specified by:
windowActivated in interface java.awt.event.WindowListener
Parameters:
we - The source of the window event.

windowDeiconified

public void windowDeiconified(java.awt.event.WindowEvent we)
Handles the window deiconified event.

Specified by:
windowDeiconified in interface java.awt.event.WindowListener
Parameters:
we - The source of the window event.

windowIconified

public void windowIconified(java.awt.event.WindowEvent we)
Handles the window inconified event.

Specified by:
windowIconified in interface java.awt.event.WindowListener
Parameters:
we - The source of the window event.

windowClosing

public void windowClosing(java.awt.event.WindowEvent we)
Handles the window closing event.

Specified by:
windowClosing in interface java.awt.event.WindowListener
Parameters:
we - The source of the window event.

windowClosed

public void windowClosed(java.awt.event.WindowEvent we)
Handles the window closed event.

Specified by:
windowClosed in interface java.awt.event.WindowListener
Parameters:
we - The source of the window event.

windowOpened

public void windowOpened(java.awt.event.WindowEvent we)
Handles the window opened event.

Specified by:
windowOpened in interface java.awt.event.WindowListener
Parameters:
we - The source of the window event.

isWaitingForColor

public boolean isWaitingForColor()
If the game is still waiting for the color fo the player.

Returns:
True if still waiting, false if not.

setWaitingForColor

public void setWaitingForColor(boolean waitingForColor)
Set status of waiting for the color.

Parameters:
waitingForColor - The new state for waiting for color

startApp

public void startApp()
Start the thread for the main app.


setRunning

public void setRunning(boolean running)
Set the running state.

Parameters:
running - True if running, false if not.

isRunning

public boolean isRunning()
Gets the current running state.

Returns:
True if running, false if not.

setRunner

public void setRunner(java.lang.Thread runner)
Sets the thread.

Parameters:
runner - The thread that is running.

getRunner

public java.lang.Thread getRunner()
Gets the thread.

Returns:
The current thread that is running.

run

public void run()
Handles running the thread.

Specified by:
run in interface java.lang.Runnable

stopApp

public void stopApp()
Stops the thread from running.


main

public static void main(java.lang.String[] args)
The main function that starts the appilication.

Parameters:
args - An array of arguments passed into main.