de.fhwiesbaden.jgamp001.thello
Class FlexibleThelloControl

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 de.fhwiesbaden.jgamp001.thello.FlexibleThelloControl
All Implemented Interfaces:
SpielControl, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.Observer, javax.accessibility.Accessible

public class FlexibleThelloControl
extends javax.swing.JPanel
implements java.util.Observer

Die Kontrolleinheit des Spiels. Alle eingehenden Züge werden hier verarbeitet. Seine GUI beherbergt die folgenden Elemente: - Das Spielbrett (intern) - Das Notationspanel (externe Klasse) - Statusinformationen (intern) Spielzüge können auf folgende Wege eingehen: - Per Mausklick (klassenintern) - Per Klasse Netzwerkspieler (Observer) - Per Klasse Computerspieler (Observer)

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
 Computerspieler aiPlayer
           
 ThelloBoard<M> board
           
 NotationsPanel notation
           
 
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
FlexibleThelloControl()
          Der leere Konstruktor.
FlexibleThelloControl(ThelloGame thello, Netzwerkspieler netPlayer, Spielertyp erster, Spielertyp zweiter)
          Der Standardkonstruktor für neue Spiele.
 
Method Summary
 void spielAbbrechen()
           
 void spielAbbrechen(java.lang.String string)
          Eine Standardmethode zur Einleitung des Spielendes.
 void startFreigeben(boolean arg0)
          Die Startfreigabe für den Timer
 void update(java.util.Observable arg0, java.lang.Object arg1)
          Die Updatemethode der Kontrollklasse.
 void whenMousePressed(byte c, byte r)
           
 
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
 

Field Detail

aiPlayer

public Computerspieler aiPlayer

notation

public final NotationsPanel notation

board

public ThelloBoard<M> board
Constructor Detail

FlexibleThelloControl

public FlexibleThelloControl()
Der leere Konstruktor. Er erstellt ein neues Spiel unter den Standardvorgaben: Erster Spieler: Lokaler Spieler Zweiter Spieler: Lokale KI Netzwerkschnittstelle unbenutzt


FlexibleThelloControl

public FlexibleThelloControl(ThelloGame thello,
                             Netzwerkspieler netPlayer,
                             Spielertyp erster,
                             Spielertyp zweiter)
Der Standardkonstruktor für neue Spiele. Er erzeugt ein neues Spiel unter den gegebenen Voraussetzungen. Die Netzwerkschnittstelle sollte dabei bereits eine Verbindung eröffnet haben und sich im Spielmodus befinden.

Parameters:
thello - Das Spielmodul, welches die aufbereiteten Eingaben erhält
netPlayer - Die Netzwerkschnittstelle, falls nötig
erster - Von welchem Typ der erste Spieler ist (Rot)
zweiter - Von welchem Typ der zweite Spieler ist (Blau)
Method Detail

startFreigeben

public void startFreigeben(boolean arg0)
Die Startfreigabe für den Timer

Specified by:
startFreigeben in interface SpielControl
Parameters:
arg0 - Start freigeben oder anhalten

whenMousePressed

public void whenMousePressed(byte c,
                             byte r)

update

public void update(java.util.Observable arg0,
                   java.lang.Object arg1)
Die Updatemethode der Kontrollklasse. Sie erwartet eingehende Züge aus dem Netzwerk oder von der KI.

Specified by:
update in interface java.util.Observer

spielAbbrechen

public void spielAbbrechen(java.lang.String string)
Eine Standardmethode zur Einleitung des Spielendes. Ein MessageDialog erscheint mit der Begründung des Spielendes.

Specified by:
spielAbbrechen in interface SpielControl
Parameters:
string - Die Begründung, welche im MessageDialog stehen soll.

spielAbbrechen

public void spielAbbrechen()