Class ArenaData

java.lang.Object
  |
  +--javax.swing.table.AbstractTableModel
        |
        +--ArenaData
All Implemented Interfaces:
java.io.Serializable, javax.swing.table.TableModel

public class ArenaData
extends javax.swing.table.AbstractTableModel

ArenaData ist die Erweiterung des AbstractTableModel für die Bereitstellung der Spielfunktionen in der von Arena erzeugten JTable.
Hier werden unter anderem die angezeigten Spielsteine in die Tabelle eingesetzt.

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

Field Summary
protected  java.util.Vector rows
           
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
ArenaData(int columnCount)
          Erzeugen einer Tabelle mit festzusetzender Spaltenanzahl.
Die Überschriften TableHeader werden nach der Anzahl der Spalten durchnumeriert (1,...,columnCount).
ArenaData(java.lang.String[] headColumn)
          Erzeugen einer Tabelle mit festgesetzten Überschriften.
Dabei werden die Überschriften als Array von Strings übergeben und die Anzahl der Spalten aus der Länge des Arrays ermittelt.
 
Method Summary
 void addRow(int index)
          Hinzufügen einer "leeren" Tabellenzeile.
Dabei wird in jede Spalte der neuen Zeile ein Leer-Icon eingefügt.
 void addRow(int index, SpielStein[] reihe)
          Hinzufügen einer Tabellenzeile, gefüllt mit einem Array aus SpielStein.
 void clearTable()
          Die ganze Tabelle löschen
 void deleteRow(int index)
          Löschen einer bestimmten Tabellenzeile
 java.lang.Class getColumnClass(int c)
          Abfrage der Art des Objekts in der Tabelle
wird zum rendern der Tabellenspalte benötigt
 int getColumnCount()
          Abfrage der Spaltenanzahl
 java.lang.String getColumnName(int columnIndex)
          Abfrage der Spaltennamen
 int getFreeRow(int x)
          Ermittelt die nächste freie Zeile in einer gegebenen Spalte
 int getRowCount()
          Abfrage der Zeilenanzahl
 int getStateValueAt(int rowIndex, int colIndex)
          Statusabfrage in einem bestimmten Feldes der Tabelle
 java.lang.Object getValueAt(int rowIndex, int colIndex)
          Abfrage des Wertes einer bestimmten Tabellenzelle
 boolean isCellEditable(int row, int col)
          Abfrage, ob die Zelle editierbar ist
 void setCellEditable(boolean state)
          Zellen in der Tablle editierbar machen und sperren
 void setValueAt(java.lang.Object value, int rowIndex, int colIndex)
          Abändern des Icons in einer bestimmten Zeile, incl.
 void setWidth(int x)
          Setzt eine neue Spaltenanzahl des Spielfelds fest.
dabei werden auch die Tabellenspalten neu benannt und die Tabelle wird benachrichtigt, dass sich die Struktur geändert hat.
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, removeTableModelListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rows

protected java.util.Vector rows
Constructor Detail

ArenaData

public ArenaData(int columnCount)
Erzeugen einer Tabelle mit festzusetzender Spaltenanzahl.
Die Überschriften TableHeader werden nach der Anzahl der Spalten durchnumeriert (1,...,columnCount).

Parameters:
columnCount - ist Anzahl der einzufügenden Spalten

ArenaData

public ArenaData(java.lang.String[] headColumn)
Erzeugen einer Tabelle mit festgesetzten Überschriften.
Dabei werden die Überschriften als Array von Strings übergeben und die Anzahl der Spalten aus der Länge des Arrays ermittelt.

Parameters:
headColumn - ist ein Array von Strings, die die Überschriften der Tabelle beinhalten
Method Detail

addRow

public void addRow(int index)
Hinzufügen einer "leeren" Tabellenzeile.
Dabei wird in jede Spalte der neuen Zeile ein Leer-Icon eingefügt.

Parameters:
index - Zeilennummer, in der die neue Zeile eingefügt werden soll

addRow

public void addRow(int index,
                   SpielStein[] reihe)
Hinzufügen einer Tabellenzeile, gefüllt mit einem Array aus SpielStein.

Parameters:
index - Zeilennummer, in der die neue Zeile eingefügt werden soll
reihe - Array von SpielStein, die in die Zeile eingefügt werden sollen

deleteRow

public void deleteRow(int index)
Löschen einer bestimmten Tabellenzeile

Parameters:
index - Nummer der Tabellenzeile

clearTable

public void clearTable()
Die ganze Tabelle löschen


getColumnName

public java.lang.String getColumnName(int columnIndex)
Abfrage der Spaltennamen

Specified by:
getColumnName in interface javax.swing.table.TableModel
Overrides:
getColumnName in class javax.swing.table.AbstractTableModel
Parameters:
columnIndex - ist die Spaltennummer, deren Name ermittelt werden soll
Returns:
String, der den Namen der Tabellenspalte enthält

getValueAt

public java.lang.Object getValueAt(int rowIndex,
                                   int colIndex)
Abfrage des Wertes einer bestimmten Tabellenzelle

Parameters:
rowIndex - ist die Zeilennummer, in der sich das gesuchte Objekt befindet
colIndex - ist die Spaltennummer, in der sich das gesuchte Objekt befindet
Returns:
ImageIcon, welches den Spielstein darstellt

getStateValueAt

public int getStateValueAt(int rowIndex,
                           int colIndex)
Statusabfrage in einem bestimmten Feldes der Tabelle

Parameters:
rowIndex - ist die Zeilennummer des Feldes
colIndex - ist die Spaltennummer des Feldes
Returns:
Status im gesuchten Feld:
0: Feld ist leer,
1: Feld ist von Spieler 1 besetzt,
2: Feld ist von Spieler 2 besetzt

getColumnCount

public int getColumnCount()
Abfrage der Spaltenanzahl

Returns:
Anzahl der Spalten in der Tabelle

getRowCount

public int getRowCount()
Abfrage der Zeilenanzahl

Returns:
Anzahl der Zeilen in der Tabelle

isCellEditable

public boolean isCellEditable(int row,
                              int col)
Abfrage, ob die Zelle editierbar ist

Specified by:
isCellEditable in interface javax.swing.table.TableModel
Overrides:
isCellEditable in class javax.swing.table.AbstractTableModel
Parameters:
row - Zeile, in der sich die gesuchte Zelle befindet
col - Spalte, in der sich die gesuchte Zelle befindet
Returns:
Boolean true, wenn editierbar, false falls nicht.
Default ist true

getColumnClass

public java.lang.Class getColumnClass(int c)
Abfrage der Art des Objekts in der Tabelle
wird zum rendern der Tabellenspalte benötigt

Specified by:
getColumnClass in interface javax.swing.table.TableModel
Overrides:
getColumnClass in class javax.swing.table.AbstractTableModel
Parameters:
c - ist die Spaltennummer
Returns:
Class die das Objekt in der Spalte repräsentiert

setValueAt

public void setValueAt(java.lang.Object value,
                       int rowIndex,
                       int colIndex)
Abändern des Icons in einer bestimmten Zeile, incl. update der Tabelle

Specified by:
setValueAt in interface javax.swing.table.TableModel
Overrides:
setValueAt in class javax.swing.table.AbstractTableModel
Parameters:
value - ist das einzufügende Icon, muss vom Typ ImageIcon sein
rowIndex - Zeilennummer, in der das Icon eingefügt werden soll
colIndex - Spaltennummer, in der das Icon eingefügt werden soll

setCellEditable

public void setCellEditable(boolean state)
Zellen in der Tablle editierbar machen und sperren

Parameters:
state - true: Zellen sind editierbar, false: Zellen sind schreibgeschützt

getFreeRow

public int getFreeRow(int x)
Ermittelt die nächste freie Zeile in einer gegebenen Spalte

Parameters:
x - Spalte, in der gesucht werden soll
Returns:
-1 falls Spalte voll, sonst die Zeile, in der der Spielstein eingesetzt werden kann

setWidth

public void setWidth(int x)
Setzt eine neue Spaltenanzahl des Spielfelds fest.
dabei werden auch die Tabellenspalten neu benannt und die Tabelle wird benachrichtigt, dass sich die Struktur geändert hat.

Parameters:
x - neue Spaltenanzahl