com.jgoodies.binding.adapter
E
- the type of the ListModel elementspublic abstract class AbstractTableAdapter<E> extends javax.swing.table.AbstractTableModel
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 FormConstructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
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.
|
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
public AbstractTableAdapter(javax.swing.ListModel listModel)
#getColumnCount()
and #getColumnName(int)
.listModel
- the ListModel that holds the row elementsjava.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 namesjava.lang.NullPointerException
- if the list model is null
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 columnjava.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 modelprotected javax.swing.event.ListDataListener createChangeHandler()
Copyright © 2002-2010 JGoodies Karsten Lentzsch. All Rights Reserved.