|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.swing.table.AbstractTableModel
com.jgoodies.binding.adapter.AbstractTableAdapter<E>
E
- the type of the ListModel elementspublic abstract class AbstractTableAdapter<E>
An abstract implementation of the TableModel
interface that converts a ListModel
of row elements.
This class provides default implementations for the TableModel
methods #getColumnCount()
and #getColumnName(int)
.
To use these methods you must use the constructor that accepts an
array of column names and this array must not be null
.
If a subclass constructs itself with the column names set to null
it must override the methods #getColumnCount()
and
#getColumnName(int)
.
Example: API users subclass AbstractTableAdapter
and just implement the method TableModel#getValueAt(int, int)
.
The following example implementation is based on a list of customer rows and exposes the first and last name as well as the customer ages:
public class CustomerTableModel extends AbstractTableAdapter { private static final String[] COLUMN_NAMES = { "Last Name", "First Name", "Age" }; public CustomerTableModel(ListModel listModel) { super(listModel, COLUMN_NAMES); } public Object getValueAt(int rowIndex, int columnIndex) { Customer customer = (Customer) getRow(rowIndex); switch (columnIndex) { case 0 : return customer.getLastName(); case 1 : return customer.getFirstName(); case 2 : return customer.getAge(); default: return null; } } }
ListModel
,
JTable
,
Serialized FormField Summary |
---|
Fields inherited from class javax.swing.table.AbstractTableModel |
---|
listenerList |
Constructor Summary | |
---|---|
AbstractTableAdapter(javax.swing.ListModel listModel)
Constructs an AbstractTableAdapter on the given ListModel. |
|
AbstractTableAdapter(javax.swing.ListModel listModel,
java.lang.String... columnNames)
Constructs an AbstractTableAdapter on the given ListModel using the specified table column names. |
Method Summary | |
---|---|
protected javax.swing.event.ListDataListener |
createChangeHandler()
Creates and returns a listener that handles changes in the underlying list model. |
int |
getColumnCount()
Returns the number of columns in the model. |
java.lang.String |
getColumnName(int columnIndex)
Returns the name of the column at the given column index. |
E |
getRow(int index)
Returns the row at the specified row index. |
int |
getRowCount()
Returns the number of rows in the model. |
Methods inherited from class javax.swing.table.AbstractTableModel |
---|
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.swing.table.TableModel |
---|
getValueAt |
Constructor Detail |
---|
public AbstractTableAdapter(javax.swing.ListModel listModel)
#getColumnCount()
and #getColumnName(int)
.
listModel
- the ListModel that holds the row elements
java.lang.NullPointerException
- if the list model is null
public AbstractTableAdapter(javax.swing.ListModel listModel, java.lang.String... columnNames)
null
, it is copied to avoid external mutation.
Subclasses that invoke this constructor with a null
column
name array must override the methods #getColumnCount()
and
#getColumnName(int)
.
listModel
- the ListModel that holds the row elementscolumnNames
- optional column names
java.lang.NullPointerException
- if the list model is null
Method Detail |
---|
public int getColumnCount()
Subclasses must override this method if they don't provide an array of column names in the constructor.
java.lang.NullPointerException
- if the optional column names array
has not been set in the constructor. In this case API users
must override this method.getColumnName(int)
,
getRowCount()
public java.lang.String getColumnName(int columnIndex)
Subclasses must override this method if they don't provide an array of column names in the constructor.
getColumnName
in interface javax.swing.table.TableModel
getColumnName
in class javax.swing.table.AbstractTableModel
columnIndex
- the index of the column
java.lang.NullPointerException
- if the optional column names array
has not been set in the constructor. In this case API users
must override this method.getColumnCount()
,
getRowCount()
public final int getRowCount()
JTable
uses this method to determine how many rows it
should display. This method should be quick, as it
is called frequently during rendering.
getRow(int)
public final E getRow(int index)
index
- row index in the underlying list model
protected javax.swing.event.ListDataListener createChangeHandler()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |