public class DefaultListTableModel
extends javax.swing.table.AbstractTableModel
implements java.io.Serializable
TableModel
that uses a List
of Lists
to store the cell value objects.TableModel
, getDataList()
, Serialized FormModifier and Type | Field and Description |
---|---|
protected java.util.ArrayList |
columnIdentifiers
The
List of column identifiers. |
protected java.util.ArrayList |
dataList
The
List of Lists of Object values. |
Constructor and Description |
---|
DefaultListTableModel()
Constructs a default
DefaultTableModel which is a table of zero columns and zero rows. |
DefaultListTableModel(int numRows, int numColumns)
Constructs a
DefaultTableModel with numRows and numColumns of null object values. |
DefaultListTableModel(java.util.List columnNames, int numRows)
Constructs a
DefaultTableModel with as many columns as there are elements in columnNames and numRows of null object values. |
DefaultListTableModel(java.util.List data, java.util.List columnNames)
Constructs a
DefaultTableModel and initializes the table by passing data and columnNames to the setDataList method. |
DefaultListTableModel(java.lang.Object[][] data, java.lang.Object[] columnNames)
Constructs a
DefaultTableModel and initializes the table by passing data and columnNames to the setDataList method. |
DefaultListTableModel(java.lang.Object[] columnNames, int numRows)
Constructs a
DefaultTableModel with as many columns as there are elements in columnNames and numRows of null object values. |
Modifier and Type | Method and Description |
---|---|
void |
addColumn(java.lang.Object columnName)
Adds a column to the model.
|
void |
addColumn(java.lang.Object columnName, java.util.List columnData)
Adds a column to the model.
|
void |
addColumn(java.lang.Object columnName, java.lang.Object[] columnData)
Adds a column to the model.
|
void |
addRow(java.util.List rowData)
Adds a row to the end of the model.
|
void |
addRow(java.lang.Object[] rowData)
Adds a row to the end of the model.
|
protected static java.util.List |
convertToList(java.lang.Object[] anArray)
Returns a list that contains the same objects as the array.
|
protected static java.util.List |
convertToList(java.lang.Object[][] anArray)
Returns a list of lists that contains the same objects as the array.
|
int |
getColumnCount()
Returns the number of columns in this data table.
|
java.lang.String |
getColumnName(int column)
Returns the column name.
|
java.util.List |
getDataList()
Returns the
List of Lists that contains the table's data values. |
int |
getRowCount()
Returns the number of rows in this data table.
|
java.lang.Object |
getValueAt(int row, int column)
Returns an attribute value for the cell at
row and column . |
void |
insertRow(int row, java.util.List rowData)
Inserts a row at
row in the model. |
void |
insertRow(int row, java.lang.Object[] rowData)
Inserts a row at
row in the model. |
boolean |
isCellEditable(int row, int column)
Returns true regardless of parameter values.
|
boolean |
isEditable()
Returns the editable state of the default table model
|
void |
moveRow(int startIndex, int endIndex, int toIndex)
Moves one or more rows starting at
startIndex to endIndex in the model to the toIndex . |
void |
newDataAvailable(javax.swing.event.TableModelEvent event)
Equivalent to
fireTableChanged . |
void |
newRowsAdded(javax.swing.event.TableModelEvent event)
Ensures that the new rows have the correct number of columns.
|
void |
removeRow(int row)
Removes the row at
row from the model. |
void |
rowsRemoved(javax.swing.event.TableModelEvent event)
Equivalent to
fireTableChanged . |
void |
setColumnCount(int columnCount)
Sets the number of columns in the model.
|
void |
setColumnIdentifiers(java.util.List newIdentifiers)
Replaces the column identifiers in the model.
|
void |
setColumnIdentifiers(java.lang.Object[] newIdentifiers)
Replaces the column identifiers in the model.
|
void |
setDataList(java.util.List newData, java.util.List columnNames)
Replaces the current
dataList instance variable with the new List of rows, newData . |
void |
setDataList(java.lang.Object[][] newData, java.lang.Object[] columnNames)
Replaces the value in the
dataList instance variable with the values in the array newData . |
void |
setEditable(boolean isEditable)
Sets the editable state of the default table model
|
void |
setNumRows(int newSize)
Obsolete as of Java 2 platform v1.3.
|
void |
setRowCount(int rowCount)
Sets the number of rows in the model.
|
void |
setValueAt(java.lang.Object aValue, int row, int column)
Sets the object value for the cell at
column and row . |
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener
protected java.util.ArrayList dataList
List
of Lists
of Object
values.protected java.util.ArrayList columnIdentifiers
List
of column identifiers.public DefaultListTableModel()
DefaultTableModel
which is a table of zero columns and zero rows.public DefaultListTableModel(int numRows, int numColumns)
DefaultTableModel
with numRows
and numColumns
of null
object values.numRows
- the number of rows the table holdsnumColumns
- the number of columns the table holdssetValueAt(java.lang.Object, int, int)
public DefaultListTableModel(java.util.List columnNames, int numRows)
DefaultTableModel
with as many columns as there are elements in columnNames
and numRows
of null
object values. Each column's name will be taken from the columnNames
list.columnNames
- list
containing the names of the new columns. If this is null
then the model has no columnsnumRows
- the number of rows the table holdssetDataList(java.util.List, java.util.List)
, setValueAt(java.lang.Object, int, int)
public DefaultListTableModel(java.lang.Object[] columnNames, int numRows)
DefaultTableModel
with as many columns as there are elements in columnNames
and numRows
of null
object values. Each column's name will be taken from the columnNames
array.columnNames
- array
containing the names of the new columns. If this is null
then the model has no columnsnumRows
- the number of rows the table holdssetDataList(java.util.List, java.util.List)
, setValueAt(java.lang.Object, int, int)
public DefaultListTableModel(java.util.List data, java.util.List columnNames)
DefaultTableModel
and initializes the table by passing data
and columnNames
to the setDataList
method.data
- the data of the tablecolumnNames
- list
containing the names of the new columnsgetDataList()
, setDataList(java.util.List, java.util.List)
public DefaultListTableModel(java.lang.Object[][] data, java.lang.Object[] columnNames)
DefaultTableModel
and initializes the table by passing data
and columnNames
to the setDataList
method. The first index in the Object[][]
array is the row index and the second is the column index.data
- the data of the tablecolumnNames
- the names of the columnsgetDataList()
, setDataList(java.util.List, java.util.List)
public java.util.List getDataList()
List
of Lists
that contains the table's data values. The lists contained in the outer list are each a single row of values. In other words, to get to the cell at row 1, column 5:
((List)getDataList().elementAt(1)).elementAt(5);
newDataAvailable(javax.swing.event.TableModelEvent)
, newRowsAdded(javax.swing.event.TableModelEvent)
, setDataList(java.util.List, java.util.List)
public void setDataList(java.util.List newData, java.util.List columnNames)
dataList
instance variable with the new List of rows, newData
. columnNames
are the names of the new columns. The first name in columnNames
is mapped to column 0 in newData
. Each row in newData
is adjusted to match the number of columns in columnNames
either by truncating the List
if it is too long, or adding null
values if it is too short.newData
- the new data listcolumnNames
- the names of the columnsnewDataAvailable(javax.swing.event.TableModelEvent)
, getDataList()
public void setDataList(java.lang.Object[][] newData, java.lang.Object[] columnNames)
dataList
instance variable with the values in the array newData
. The first index in the Object[][]
array is the row index and the second is the column index. columnNames
are the names of the new columns.newData
- the new data listcolumnNames
- the names of the columnssetDataList(List, List)
public void newDataAvailable(javax.swing.event.TableModelEvent event)
fireTableChanged
.event
- the change eventpublic void newRowsAdded(javax.swing.event.TableModelEvent event)
setSize
method in List
which truncates lists which are too long, and appends null
s if they are too short. This method also sends out a tableChanged
notification message to all the listeners.event
- this TableModelEvent
describes where the rows were added. If null
it assumes all the rows were newly addedgetDataList()
public void rowsRemoved(javax.swing.event.TableModelEvent event)
fireTableChanged
.event
- the change eventpublic void setColumnIdentifiers(java.util.List newIdentifiers)
newIdentifier
s is greater than the current number of columns, new columns are added to the end of each row in the model. If the number of newIdentifier
s is less than the current number of columns, all the extra columns at the end of a row are discarded.newIdentifiers
- list of column identifiers. If null
, set the model to zero columnssetNumRows(int)
public void setColumnIdentifiers(java.lang.Object[] newIdentifiers)
newIdentifier
s is greater than the current number of columns, new columns are added to the end of each row in the model. If the number of newIdentifier
s is less than the current number of columns, all the extra columns at the end of a row are discarded.newIdentifiers
- array of column identifiers. If null
, set the model to zero columnssetNumRows(int)
public void setNumRows(int newSize)
setRowCount
instead.public void setRowCount(int rowCount)
rowCount
and greater are discarded.setColumnCount(int)
public void setColumnCount(int columnCount)
null
cell values. If the new size is less than the current size, all columns at index columnCount
and greater are discarded.columnCount
- the new number of columns in the modelsetColumnCount(int)
public void addColumn(java.lang.Object columnName)
columnName
. This method will send a tableChanged
notification message to all the listeners. This method is a cover for addColumn(Object, List)
which uses null
as the data list.columnName
- the identifier of the column being addedjava.lang.IllegalArgumentException
- if columnName
is null
public void addColumn(java.lang.Object columnName, java.util.List columnData)
columnName
. columnData
is the optional list of data for the column. If it is null
the column is filled with null
values. Otherwise, the new data will be added to model starting with the first element going to row 0, etc. This method will send a tableChanged
notification message to all the listeners.columnName
- the identifier of the column being addedcolumnData
- optional data of the column being addedjava.lang.IllegalArgumentException
- if columnName
is null
public void addColumn(java.lang.Object columnName, java.lang.Object[] columnData)
columnName
. columnData
is the optional array of data for the column. If it is null
the column is filled with null
values. Otherwise, the new data will be added to model starting with the first element going to row 0, etc. This method will send a tableChanged
notification message to all the listeners.addColumn(Object, List)
public void addRow(java.util.List rowData)
null
values unless rowData
is specified. Notification of the row being added will be generated.rowData
- optional data of the row being addedpublic void addRow(java.lang.Object[] rowData)
null
values unless rowData
is specified. Notification of the row being added will be generated.rowData
- optional data of the row being addedpublic void insertRow(int row, java.util.List rowData)
row
in the model. The new row will contain null
values unless rowData
is specified. Notification of the row being added will be generated.row
- the row index of the row to be insertedrowData
- optional data of the row being addedjava.lang.ArrayIndexOutOfBoundsException
- if the row was invalidpublic void insertRow(int row, java.lang.Object[] rowData)
row
in the model. The new row will contain null
values unless rowData
is specified. Notification of the row being added will be generated.row
- the row index of the row to be insertedrowData
- optional data of the row being addedjava.lang.ArrayIndexOutOfBoundsException
- if the row was invalidpublic void moveRow(int startIndex, int endIndex, int toIndex)
startIndex
to endIndex
in the model to the toIndex
. This method will send a tableChanged
notification message to all the listeners.
Examples of moves:
1. moveRow(1,3,5);
a|B|C|D|e|f|g|h|i|j|k - before a|e|f|B|C|D|g|h|i|j|k - after
2. moveRow(6,7,1);
a|b|c|d|e|f|G|H|i|j|k - before a|G|H|b|c|d|e|f|i|j|k - after
startIndex
- the starting row index to be movedendIndex
- the ending row index to be movedtoIndex
- the destination of the rows to be movedjava.lang.ArrayIndexOutOfBoundsException
- if any of the indices are out of range; or if endIndex
is less than startIndex
public void removeRow(int row)
row
from the model. Notification of the row being removed will be sent to all the listeners.row
- the row index of the row to be removedjava.lang.ArrayIndexOutOfBoundsException
- if the row was invalidpublic int getRowCount()
getRowCount
in interface javax.swing.table.TableModel
public int getColumnCount()
getColumnCount
in interface javax.swing.table.TableModel
public java.lang.String getColumnName(int column)
getColumnName
in interface javax.swing.table.TableModel
getColumnName
in class javax.swing.table.AbstractTableModel
columnIdentifiers
. If columnIdentifiers
is null
or does not have an entry for this index, returns the default name provided by the superclasspublic boolean isCellEditable(int row, int column)
isCellEditable
in interface javax.swing.table.TableModel
isCellEditable
in class javax.swing.table.AbstractTableModel
row
- the row whose value is to be queriedcolumn
- the column whose value is to be queriedsetValueAt(java.lang.Object, int, int)
public void setEditable(boolean isEditable)
public boolean isEditable()
public java.lang.Object getValueAt(int row, int column)
row
and column
.getValueAt
in interface javax.swing.table.TableModel
row
- the row whose value is to be queriedcolumn
- the column whose value is to be queriedjava.lang.ArrayIndexOutOfBoundsException
- if an invalid row or column was givenpublic void setValueAt(java.lang.Object aValue, int row, int column)
column
and row
. aValue
is the new value. This method will generate a tableChanged
notification.setValueAt
in interface javax.swing.table.TableModel
setValueAt
in class javax.swing.table.AbstractTableModel
aValue
- the new value; this can be nullrow
- the row whose value is to be changedcolumn
- the column whose value is to be changedjava.lang.ArrayIndexOutOfBoundsException
- if an invalid row or column was givenprotected static java.util.List convertToList(java.lang.Object[] anArray)
anArray
- the array to be convertedanArray
is null
, returns null
protected static java.util.List convertToList(java.lang.Object[][] anArray)
anArray
- the double array to be convertedanArray
is null
, returns null