Class Arena

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--Arena
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.event.MouseListener, java.lang.Runnable, java.io.Serializable

public class Arena
extends javax.swing.JPanel
implements java.awt.event.MouseListener, java.lang.Runnable

Die Arena ist ein JPanel, welches das komplette Spielfeld enthält.
Das Spielfeld ist ein JTable, mit dem ArenaData TableModel welches die Funktionen des Spielfelds zur Verfügung stellt.

Version:
2.0
Author:
Ronny Lorenz
See Also:
ArenaData, Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes 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.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
Arena(int width, int height)
          Erstellen der Spielarena, festsetzen der Zellengröße
 
Method Summary
 int abs(int x)
          Betrag eines Integer- Werts ermitteln.
 void changePlayer()
          Spielerwechsel.
Der aktuelle Spieler wird gewechselt.
 boolean checkGewonnen()
          Ermitteln, ob das Spiel gewonnen wurde.
 void gelbBeginnt()
          Player 2 fängt an.
 int getCellHeight()
          Zellenhöhe auslesen.
Mit Hilfe dieser Methode kann man die Zellenhöhe in Erfahrung bringen.
 void istdranComp()
          Computer übernimmt nächsten Zug.
Hier wird ein neuer Thread gestartet, der den Computerzug berechnet
 void mouseClicked(java.awt.event.MouseEvent e)
          Maustaste geclickt
 void mouseEntered(java.awt.event.MouseEvent e)
          Mauszeiger in "kritischen" Bereich hinein bewegt
 void mouseExited(java.awt.event.MouseEvent e)
          Maustaste aus "kritischem" Bereich heraus bewegt
 void mousePressed(java.awt.event.MouseEvent e)
          Maustaste gedrückt
 void mouseReleased(java.awt.event.MouseEvent e)
          Maustaste losgelassen
 void rotBeginnt()
          Player 1 fängt an.
 void run()
          Computer übernimmt nächsten Zug.
Dies ist die eigentliche Ausführung des Computerzugs, der Teil, der in einem eigenen Thread läft.
 void setCellDimension(int CellHeight, int CellWidth)
          Zellengröße setzen.
Hiermit kann man die Zellengröße der Tabelle neu setzen.
 void setPanelSize(int Twidth, int Theight)
          Panelgröße neu setzen.
 void setTSize(int X, int Y)
          Neue Größe der Arena festlegen .
Dabei wird die Tabelle komplett gelöscht, eine neue Breite angegeben und anschliessend werden die neuen Spalten eingesetzt
 void startGame()
          Spiel starten.
 void UpdateTableDimensions()
          Tabellengröße aktualisieren.
Mit Hilfe dieser Methode kann man, zum Beispiel nach einer Änderung der Spalten- oder Zeilengröße, die Größe des umschliessenden ScrollPane neu setzten.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
 

Constructor Detail

Arena

public Arena(int width,
             int height)
Erstellen der Spielarena, festsetzen der Zellengröße

Parameters:
width - Anzahl der Spalten im Spielfeld
height - Anzahl der Zeilen im Spielfeld
Method Detail

setTSize

public void setTSize(int X,
                     int Y)
Neue Größe der Arena festlegen .
Dabei wird die Tabelle komplett gelöscht, eine neue Breite angegeben und anschliessend werden die neuen Spalten eingesetzt

Parameters:
X - neue Breite der Tabelle
Y - neue Höhe er Tabelle

getCellHeight

public int getCellHeight()
Zellenhöhe auslesen.
Mit Hilfe dieser Methode kann man die Zellenhöhe in Erfahrung bringen.

Returns:
Zellenhöhe als int- Wert

UpdateTableDimensions

public void UpdateTableDimensions()
Tabellengröße aktualisieren.
Mit Hilfe dieser Methode kann man, zum Beispiel nach einer Änderung der Spalten- oder Zeilengröße, die Größe des umschliessenden ScrollPane neu setzten.


setCellDimension

public void setCellDimension(int CellHeight,
                             int CellWidth)
Zellengröße setzen.
Hiermit kann man die Zellengröße der Tabelle neu setzen. Dabei werden die Attribute CellHeight und CellWidth des Objekts verändert.

Parameters:
CellWidth - neue Breite der Zelle
CellHeight - neue Höhe der Zelle

setPanelSize

public void setPanelSize(int Twidth,
                         int Theight)
Panelgröße neu setzen.

Parameters:
Twidth - neue Breite des Panels
Theight - neue Höhe des Panels

startGame

public void startGame()
Spiel starten.


istdranComp

public void istdranComp()
Computer übernimmt nächsten Zug.
Hier wird ein neuer Thread gestartet, der den Computerzug berechnet

See Also:
run()

run

public void run()
Computer übernimmt nächsten Zug.
Dies ist die eigentliche Ausführung des Computerzugs, der Teil, der in einem eigenen Thread läft. Wenn die KI eine günstige Spalte ermittelt hat, wird der Spielstein gesetzt, nachgeschaut, ob möglicherweise gewonnen wurde und wenn wenn nicht, wird der aktuelle Spieler gewechselt und der Mouselistener wieder hinzugefügt

Specified by:
run in interface java.lang.Runnable
See Also:
istdranComp(), KI.maxZug(int, Spieler, Spieler), Spieler.setzeStein(int)

abs

public int abs(int x)
Betrag eines Integer- Werts ermitteln.

Parameters:
x - Integer- Wert dessen Betrag ermittelt werden soll
Returns:
Betrag des Eingabewerts

checkGewonnen

public boolean checkGewonnen()
Ermitteln, ob das Spiel gewonnen wurde.

Returns:
true, wenn Gewonnen wurde, false ,wenn nicht

changePlayer

public void changePlayer()
Spielerwechsel.
Der aktuelle Spieler wird gewechselt.


rotBeginnt

public void rotBeginnt()
Player 1 fängt an.


gelbBeginnt

public void gelbBeginnt()
Player 2 fängt an.


mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Maustaste gedrückt

Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Maustaste geclickt

Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Mauszeiger in "kritischen" Bereich hinein bewegt

Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Maustaste aus "kritischem" Bereich heraus bewegt

Specified by:
mouseExited in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Maustaste losgelassen

Specified by:
mouseReleased in interface java.awt.event.MouseListener