DefaultTableModel (Java Platform SE 6) (original) (raw)
javax.swing.table
Class DefaultTableModel
java.lang.Object
javax.swing.table.AbstractTableModel
javax.swing.table.DefaultTableModel
All Implemented Interfaces:
public class DefaultTableModel
extends AbstractTableModel
implements Serializable
This is an implementation of TableModel
that uses a Vector
of Vectors
to store the cell value objects.
Warning: DefaultTableModel
returns a column class of Object
. WhenDefaultTableModel
is used with aTableRowSorter
this will result in extensive use oftoString
, which for non-String
data types is expensive. If you use DefaultTableModel
with aTableRowSorter
you are strongly encouraged to overridegetColumnClass
to return the appropriate type.
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans
package. Please see XMLEncoder.
See Also:
Field Summary | |
---|---|
protected Vector | columnIdentifiers The Vector of column identifiers. |
protected Vector | dataVector The Vector of Vectors of Object values. |
Fields inherited from class javax.swing.table.AbstractTableModel |
---|
listenerList |
Constructor Summary |
---|
DefaultTableModel() Constructs a default DefaultTableModel which is a table of zero columns and zero rows. |
[DefaultTableModel](../../../javax/swing/table/DefaultTableModel.html#DefaultTableModel%28int, int%29)(int rowCount, int columnCount) Constructs a DefaultTableModel withrowCount and columnCount ofnull object values. |
[DefaultTableModel](../../../javax/swing/table/DefaultTableModel.html#DefaultTableModel%28java.lang.Object[][], java.lang.Object[]%29)(Object[][] data,Object[] columnNames) Constructs a DefaultTableModel and initializes the table by passing data and columnNames to the setDataVector method. |
[DefaultTableModel](../../../javax/swing/table/DefaultTableModel.html#DefaultTableModel%28java.lang.Object[], int%29)(Object[] columnNames, int rowCount) Constructs a DefaultTableModel with as many columns as there are elements in columnNames and rowCount of null object values. |
[DefaultTableModel](../../../javax/swing/table/DefaultTableModel.html#DefaultTableModel%28java.util.Vector, int%29)(Vector columnNames, int rowCount) Constructs a DefaultTableModel with as many columns as there are elements in columnNames and rowCount of null object values. |
[DefaultTableModel](../../../javax/swing/table/DefaultTableModel.html#DefaultTableModel%28java.util.Vector, java.util.Vector%29)(Vector data,Vector columnNames) Constructs a DefaultTableModel and initializes the table by passing data and columnNames to the setDataVector method. |
Method Summary | |
---|---|
void | addColumn(Object columnName) Adds a column to the model. |
void | [addColumn](../../../javax/swing/table/DefaultTableModel.html#addColumn%28java.lang.Object, java.lang.Object[]%29)(Object columnName,Object[] columnData) Adds a column to the model. |
void | [addColumn](../../../javax/swing/table/DefaultTableModel.html#addColumn%28java.lang.Object, java.util.Vector%29)(Object columnName,Vector columnData) Adds a column to the model. |
void | addRow(Object[] rowData) Adds a row to the end of the model. |
void | addRow(Vector rowData) Adds a row to the end of the model. |
protected static Vector | convertToVector(Object[] anArray) Returns a vector that contains the same objects as the array. |
protected static Vector | convertToVector(Object[][] anArray) Returns a vector of vectors that contains the same objects as the array. |
int | getColumnCount() Returns the number of columns in this data table. |
String | getColumnName(int column) Returns the column name. |
Vector | getDataVector() Returns the Vector of Vectors that contains the table's data values. |
int | getRowCount() Returns the number of rows in this data table. |
Object | [getValueAt](../../../javax/swing/table/DefaultTableModel.html#getValueAt%28int, int%29)(int row, int column) Returns an attribute value for the cell at row and column. |
void | [insertRow](../../../javax/swing/table/DefaultTableModel.html#insertRow%28int, java.lang.Object[]%29)(int row,Object[] rowData) Inserts a row at row in the model. |
void | [insertRow](../../../javax/swing/table/DefaultTableModel.html#insertRow%28int, java.util.Vector%29)(int row,Vector rowData) Inserts a row at row in the model. |
boolean | [isCellEditable](../../../javax/swing/table/DefaultTableModel.html#isCellEditable%28int, int%29)(int row, int column) Returns true regardless of parameter values. |
void | [moveRow](../../../javax/swing/table/DefaultTableModel.html#moveRow%28int, int, int%29)(int start, int end, int to) Moves one or more rows from the inclusive range start to end to the to position in the model. |
void | newDataAvailable(TableModelEvent event) Equivalent to fireTableChanged. |
void | newRowsAdded(TableModelEvent e) 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(TableModelEvent event) Equivalent to fireTableChanged. |
void | setColumnCount(int columnCount) Sets the number of columns in the model. |
void | setColumnIdentifiers(Object[] newIdentifiers) Replaces the column identifiers in the model. |
void | setColumnIdentifiers(Vector columnIdentifiers) Replaces the column identifiers in the model. |
void | [setDataVector](../../../javax/swing/table/DefaultTableModel.html#setDataVector%28java.lang.Object[][], java.lang.Object[]%29)(Object[][] dataVector,Object[] columnIdentifiers) Replaces the value in the dataVector instance variable with the values in the array dataVector. |
void | [setDataVector](../../../javax/swing/table/DefaultTableModel.html#setDataVector%28java.util.Vector, java.util.Vector%29)(Vector dataVector,Vector columnIdentifiers) Replaces the current dataVector instance variable with the new Vector of rows, dataVector. |
void | setNumRows(int rowCount) Obsolete as of Java 2 platform v1.3. |
void | setRowCount(int rowCount) Sets the number of rows in the model. |
void | [setValueAt](../../../javax/swing/table/DefaultTableModel.html#setValueAt%28java.lang.Object, int, int%29)(Object aValue, int row, int column) Sets the object value for the cell at column androw. |
Methods inherited from class javax.swing.table.AbstractTableModel |
---|
addTableModelListener, findColumn, [fireTableCellUpdated](../../../javax/swing/table/AbstractTableModel.html#fireTableCellUpdated%28int, int%29), fireTableChanged, fireTableDataChanged, [fireTableRowsDeleted](../../../javax/swing/table/AbstractTableModel.html#fireTableRowsDeleted%28int, int%29), [fireTableRowsInserted](../../../javax/swing/table/AbstractTableModel.html#fireTableRowsInserted%28int, int%29), [fireTableRowsUpdated](../../../javax/swing/table/AbstractTableModel.html#fireTableRowsUpdated%28int, int%29), fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, [wait](../../../java/lang/Object.html#wait%28long, int%29) |
Field Detail |
---|
dataVector
protected Vector dataVector
The Vector
of Vectors
of Object
values.
columnIdentifiers
protected Vector columnIdentifiers
The Vector
of column identifiers.
Constructor Detail |
---|
DefaultTableModel
public DefaultTableModel()
Constructs a default DefaultTableModel
which is a table of zero columns and zero rows.
DefaultTableModel
public DefaultTableModel(int rowCount, int columnCount)
Constructs a DefaultTableModel
withrowCount
and columnCount
ofnull
object values.
Parameters:
rowCount
- the number of rows the table holds
columnCount
- the number of columns the table holds
See Also:
[setValueAt(java.lang.Object, int, int)](../../../javax/swing/table/DefaultTableModel.html#setValueAt%28java.lang.Object, int, int%29)
DefaultTableModel
public DefaultTableModel(Vector columnNames, int rowCount)
Constructs a DefaultTableModel
with as many columns as there are elements in columnNames
and rowCount
of null
object values. Each column's name will be taken from the columnNames
vector.
Parameters:
columnNames
- vector
containing the names of the new columns; if this is null
then the model has no columns
rowCount
- the number of rows the table holds
See Also:
[setDataVector(java.util.Vector, java.util.Vector)](../../../javax/swing/table/DefaultTableModel.html#setDataVector%28java.util.Vector, java.util.Vector%29), [setValueAt(java.lang.Object, int, int)](../../../javax/swing/table/DefaultTableModel.html#setValueAt%28java.lang.Object, int, int%29)
DefaultTableModel
public DefaultTableModel(Object[] columnNames, int rowCount)
Constructs a DefaultTableModel
with as many columns as there are elements in columnNames
and rowCount
of null
object values. Each column's name will be taken from the columnNames
array.
Parameters:
columnNames
- array
containing the names of the new columns; if this isnull
then the model has no columns
rowCount
- the number of rows the table holds
See Also:
[setDataVector(java.util.Vector, java.util.Vector)](../../../javax/swing/table/DefaultTableModel.html#setDataVector%28java.util.Vector, java.util.Vector%29), [setValueAt(java.lang.Object, int, int)](../../../javax/swing/table/DefaultTableModel.html#setValueAt%28java.lang.Object, int, int%29)
DefaultTableModel
public DefaultTableModel(Vector data, Vector columnNames)
Constructs a DefaultTableModel
and initializes the table by passing data
and columnNames
to the setDataVector
method.
Parameters:
data
- the data of the table, a Vector
of Vector
s of Object
values
columnNames
- vector
containing the names of the new columns
See Also:
getDataVector(), [setDataVector(java.util.Vector, java.util.Vector)](../../../javax/swing/table/DefaultTableModel.html#setDataVector%28java.util.Vector, java.util.Vector%29)
DefaultTableModel
public DefaultTableModel(Object[][] data, Object[] columnNames)
Constructs a DefaultTableModel
and initializes the table by passing data
and columnNames
to the setDataVector
method. The first index in the Object[][]
array is the row index and the second is the column index.
Parameters:
data
- the data of the table
columnNames
- the names of the columns
See Also:
getDataVector(), [setDataVector(java.util.Vector, java.util.Vector)](../../../javax/swing/table/DefaultTableModel.html#setDataVector%28java.util.Vector, java.util.Vector%29)
Method Detail |
---|
getDataVector
public Vector getDataVector()
Returns the Vector
of Vectors
that contains the table's data values. The vectors contained in the outer vector are each a single row of values. In other words, to get to the cell at row 1, column 5:
((Vector)getDataVector().elementAt(1)).elementAt(5);
Returns:
the vector of vectors containing the tables data values
See Also:
newDataAvailable(javax.swing.event.TableModelEvent), newRowsAdded(javax.swing.event.TableModelEvent), [setDataVector(java.util.Vector, java.util.Vector)](../../../javax/swing/table/DefaultTableModel.html#setDataVector%28java.util.Vector, java.util.Vector%29)
setDataVector
public void setDataVector(Vector dataVector, Vector columnIdentifiers)
Replaces the current dataVector
instance variable with the new Vector
of rows, dataVector
. Each row is represented in dataVector
as aVector
of Object
values.columnIdentifiers
are the names of the new columns. The first name in columnIdentifiers
is mapped to column 0 in dataVector
. Each row indataVector
is adjusted to match the number of columns in columnIdentifiers
either by truncating the Vector
if it is too long, or adding null
values if it is too short.
Note that passing in a null
value fordataVector
results in unspecified behavior, an possibly an exception.
Parameters:
dataVector
- the new data vector
columnIdentifiers
- the names of the columns
See Also:
setDataVector
public void setDataVector(Object[][] dataVector, Object[] columnIdentifiers)
Replaces the value in the dataVector
instance variable with the values in the array dataVector
. The first index in the Object[][]
array is the row index and the second is the column index.columnIdentifiers
are the names of the new columns.
Parameters:
dataVector
- the new data vector
columnIdentifiers
- the names of the columns
See Also:
[setDataVector(Vector, Vector)](../../../javax/swing/table/DefaultTableModel.html#setDataVector%28java.util.Vector, java.util.Vector%29)
newDataAvailable
public void newDataAvailable(TableModelEvent event)
Equivalent to fireTableChanged
.
Parameters:
event
- the change event
newRowsAdded
public void newRowsAdded(TableModelEvent e)
Ensures that the new rows have the correct number of columns. This is accomplished by using the setSize
method inVector
which truncates vectors 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.
Parameters:
e
- this TableModelEvent
describes where the rows were added. If null
it assumes all the rows were newly added
See Also:
rowsRemoved
public void rowsRemoved(TableModelEvent event)
Equivalent to fireTableChanged
.
Parameters:
event
- the change event
setNumRows
public void setNumRows(int rowCount)
Obsolete as of Java 2 platform v1.3. Please use setRowCount
instead.
setRowCount
public void setRowCount(int rowCount)
Sets the number of rows in the model. If the new size is greater than the current size, new rows are added to the end of the model If the new size is less than the current size, all rows at index rowCount
and greater are discarded.
Since:
1.3
See Also:
addRow
public void addRow(Vector rowData)
Adds a row to the end of the model. The new row will containnull
values unless rowData
is specified. Notification of the row being added will be generated.
Parameters:
rowData
- optional data of the row being added
addRow
public void addRow(Object[] rowData)
Adds a row to the end of the model. The new row will containnull
values unless rowData
is specified. Notification of the row being added will be generated.
Parameters:
rowData
- optional data of the row being added
insertRow
public void insertRow(int row, Vector rowData)
Inserts a row at row
in the model. The new row will contain null
values unless rowData
is specified. Notification of the row being added will be generated.
Parameters:
row
- the row index of the row to be inserted
rowData
- optional data of the row being added
Throws:
[ArrayIndexOutOfBoundsException](../../../java/lang/ArrayIndexOutOfBoundsException.html "class in java.lang")
- if the row was invalid
insertRow
public void insertRow(int row, Object[] rowData)
Inserts a row at row
in the model. The new row will contain null
values unless rowData
is specified. Notification of the row being added will be generated.
Parameters:
row
- the row index of the row to be inserted
rowData
- optional data of the row being added
Throws:
[ArrayIndexOutOfBoundsException](../../../java/lang/ArrayIndexOutOfBoundsException.html "class in java.lang")
- if the row was invalid
moveRow
public void moveRow(int start, int end, int to)
Moves one or more rows from the inclusive range start
to end
to the to
position in the model. After the move, the row that was at index start
will be at index to
. This method will send a tableChanged
notification message to all the listeners.
Examples of moves:
moveRow(1,3,5); a|B|C|D|e|f|g|h|i|j|k - before a|e|f|g|h|B|C|D|i|j|k - after
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
Parameters:
start
- the starting row index to be moved
end
- the ending row index to be moved
to
- the destination of the rows to be moved
Throws:
[ArrayIndexOutOfBoundsException](../../../java/lang/ArrayIndexOutOfBoundsException.html "class in java.lang")
- if any of the elements would be moved out of the table's range
removeRow
public void removeRow(int row)
Removes the row at row
from the model. Notification of the row being removed will be sent to all the listeners.
Parameters:
row
- the row index of the row to be removed
Throws:
[ArrayIndexOutOfBoundsException](../../../java/lang/ArrayIndexOutOfBoundsException.html "class in java.lang")
- if the row was invalid
setColumnIdentifiers
public void setColumnIdentifiers(Vector columnIdentifiers)
Replaces the column identifiers in the model. If the number ofnewIdentifier
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.
Parameters:
columnIdentifiers
- vector of column identifiers. Ifnull
, set the model to zero columns
See Also:
setColumnIdentifiers
public void setColumnIdentifiers(Object[] newIdentifiers)
Replaces the column identifiers in the model. If the number ofnewIdentifier
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.
Parameters:
newIdentifiers
- array of column identifiers. If null
, set the model to zero columns
See Also:
setColumnCount
public void setColumnCount(int columnCount)
Sets the number of columns in the model. If the new size is greater than the current size, new columns are added to the end of the model with null
cell values. If the new size is less than the current size, all columns at indexcolumnCount
and greater are discarded.
Parameters:
columnCount
- the new number of columns in the model
Since:
1.3
See Also:
addColumn
public void addColumn(Object columnName)
Adds a column to the model. The new column will have the identifier columnName
, which may be null. This method will send atableChanged
notification message to all the listeners. This method is a cover for addColumn(Object, Vector)
which uses null
as the data vector.
Parameters:
columnName
- the identifier of the column being added
addColumn
public void addColumn(Object columnName, Vector columnData)
Adds a column to the model. The new column will have the identifier columnName
, which may be null.columnData
is the optional vector 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 atableChanged
notification message to all the listeners.
Parameters:
columnName
- the identifier of the column being added
columnData
- optional data of the column being added
addColumn
public void addColumn(Object columnName, Object[] columnData)
Adds a column to the model. The new column will have the identifier 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 atableChanged
notification message to all the listeners.
See Also:
[addColumn(Object, Vector)](../../../javax/swing/table/DefaultTableModel.html#addColumn%28java.lang.Object, java.util.Vector%29)
getRowCount
public int getRowCount()
Returns the number of rows in this data table.
Specified by:
[getRowCount](../../../javax/swing/table/TableModel.html#getRowCount%28%29)
in interface [TableModel](../../../javax/swing/table/TableModel.html "interface in javax.swing.table")
Returns:
the number of rows in the model
See Also:
getColumnCount
public int getColumnCount()
Returns the number of columns in this data table.
Specified by:
[getColumnCount](../../../javax/swing/table/TableModel.html#getColumnCount%28%29)
in interface [TableModel](../../../javax/swing/table/TableModel.html "interface in javax.swing.table")
Returns:
the number of columns in the model
See Also:
getColumnName
public String getColumnName(int column)
Returns the column name.
Specified by:
[getColumnName](../../../javax/swing/table/TableModel.html#getColumnName%28int%29)
in interface [TableModel](../../../javax/swing/table/TableModel.html "interface in javax.swing.table")
Overrides:
[getColumnName](../../../javax/swing/table/AbstractTableModel.html#getColumnName%28int%29)
in class [AbstractTableModel](../../../javax/swing/table/AbstractTableModel.html "class in javax.swing.table")
Parameters:
column
- the column being queried
Returns:
a name for this column using the string value of the appropriate member in columnIdentifiers
. If columnIdentifiers
does not have an entry for this index, returns the default name provided by the superclass.
isCellEditable
public boolean isCellEditable(int row, int column)
Returns true regardless of parameter values.
Specified by:
[isCellEditable](../../../javax/swing/table/TableModel.html#isCellEditable%28int, int%29)
in interface [TableModel](../../../javax/swing/table/TableModel.html "interface in javax.swing.table")
Overrides:
[isCellEditable](../../../javax/swing/table/AbstractTableModel.html#isCellEditable%28int, int%29)
in class [AbstractTableModel](../../../javax/swing/table/AbstractTableModel.html "class in javax.swing.table")
Parameters:
row
- the row whose value is to be queried
column
- the column whose value is to be queried
Returns:
true
See Also:
[setValueAt(java.lang.Object, int, int)](../../../javax/swing/table/DefaultTableModel.html#setValueAt%28java.lang.Object, int, int%29)
getValueAt
public Object getValueAt(int row, int column)
Returns an attribute value for the cell at row
and column
.
Specified by:
[getValueAt](../../../javax/swing/table/TableModel.html#getValueAt%28int, int%29)
in interface [TableModel](../../../javax/swing/table/TableModel.html "interface in javax.swing.table")
Parameters:
row
- the row whose value is to be queried
column
- the column whose value is to be queried
Returns:
the value Object at the specified cell
Throws:
[ArrayIndexOutOfBoundsException](../../../java/lang/ArrayIndexOutOfBoundsException.html "class in java.lang")
- if an invalid row or column was given
setValueAt
public void setValueAt(Object aValue, int row, int column)
Sets the object value for the cell at column
androw
. aValue
is the new value. This method will generate a tableChanged
notification.
Specified by:
[setValueAt](../../../javax/swing/table/TableModel.html#setValueAt%28java.lang.Object, int, int%29)
in interface [TableModel](../../../javax/swing/table/TableModel.html "interface in javax.swing.table")
Overrides:
[setValueAt](../../../javax/swing/table/AbstractTableModel.html#setValueAt%28java.lang.Object, int, int%29)
in class [AbstractTableModel](../../../javax/swing/table/AbstractTableModel.html "class in javax.swing.table")
Parameters:
aValue
- the new value; this can be null
row
- the row whose value is to be changed
column
- the column whose value is to be changed
Throws:
[ArrayIndexOutOfBoundsException](../../../java/lang/ArrayIndexOutOfBoundsException.html "class in java.lang")
- if an invalid row or column was given
See Also:
[TableModel.getValueAt(int, int)](../../../javax/swing/table/TableModel.html#getValueAt%28int, int%29), [TableModel.isCellEditable(int, int)](../../../javax/swing/table/TableModel.html#isCellEditable%28int, int%29)
convertToVector
protected static Vector convertToVector(Object[] anArray)
Returns a vector that contains the same objects as the array.
Parameters:
anArray
- the array to be converted
Returns:
the new vector; if anArray
is null
, returns null
convertToVector
protected static Vector convertToVector(Object[][] anArray)
Returns a vector of vectors that contains the same objects as the array.
Parameters:
anArray
- the double array to be converted
Returns:
the new vector of vectors; if anArray
isnull
, returns null
Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
Scripting on this page tracks web page traffic, but does not change the content in any way.