- java.lang.Object
-
- javax.swing.table.AbstractTableModel
-
- javax.swing.table.DefaultTableModel
-
- 实现的所有接口
-
Serializable,TableModel
public class DefaultTableModel extends AbstractTableModel implements Serializable
这是TableModel的实现,其使用Vector的Vectors来存储单元格值对象。警告:
DefaultTableModel返回列类Object。 当DefaultTableModel与TableRowSorterDefaultTableModel使用时,这将导致广泛使用toString,这对于非String数据类型来说是昂贵的。 如果您使用DefaultTableModel和TableRowSorter,强烈建议您覆盖getColumnClass以返回相应的类型。警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,
java.beans软件包中添加了对所有JavaBeansjava.beans长期存储的支持。 请参见XMLEncoder。- 另请参见:
-
TableModel,getDataVector(), Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 protected VectorcolumnIdentifiers列标识符的Vector。protected Vector<Vector>dataVectorVector的Vectors的Object值。-
声明的属性在类 javax.swing.table.AbstractTableModel
listenerList
-
-
构造方法摘要
构造方法 构造器 描述 DefaultTableModel()构造一个默认的DefaultTableModel,它是一个零列和零行的表。DefaultTableModel(int rowCount, int columnCount)构造DefaultTableModel其中rowCount和columnCount为null对象值。DefaultTableModel(Object[][] data, Object[] columnNames)构造一个DefaultTableModel并通过将data和columnNames传递给setDataVector方法来初始化表。DefaultTableModel(Object[] columnNames, int rowCount)构造一个DefaultTableModel,列数与columnNames和rowCount中null对象值中的元素一样多。DefaultTableModel(Vector<?> columnNames, int rowCount)构造DefaultTableModel,其列数与columnNames和rowCount中null对象值中的元素一样多。DefaultTableModel(Vector<? extends Vector> data, Vector<?> columnNames)构造一个DefaultTableModel并通过将data和columnNames传递给setDataVector方法来初始化表。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 voidaddColumn(Object columnName)向模型添加列。voidaddColumn(Object columnName, Object[] columnData)向模型添加列。voidaddColumn(Object columnName, Vector<?> columnData)向模型添加列。voidaddRow(Object[] rowData)在模型的末尾添加一行。voidaddRow(Vector<?> rowData)在模型的末尾添加一行。protected static Vector<Object>convertToVector(Object[] anArray)返回包含与数组相同的对象的向量。protected static Vector<Vector<Object>>convertToVector(Object[][] anArray)返回包含与数组相同的对象的向量向量。intgetColumnCount()返回此数据表中的列数。StringgetColumnName(int column)返回列名称。Vector<Vector>getDataVector()返回Vector的Vectors,其中包含表的数据值。intgetRowCount()返回此数据表中的行数。ObjectgetValueAt(int row, int column)返回单元格的属性值row和column。voidinsertRow(int row, Object[] rowData)在模型中的row处插入一行。voidinsertRow(int row, Vector<?> rowData)在模型中的row处插入一行。booleanisCellEditable(int row, int column)无论参数值如何,都返回true。voidmoveRow(int start, int end, int to)将一个或多个行从包含范围start到end到模型中的to位置。voidnewDataAvailable(TableModelEvent event)相当于fireTableChanged。voidnewRowsAdded(TableModelEvent e)确保新行具有正确的列数。voidremoveRow(int row)从模型中删除row处的行。voidrowsRemoved(TableModelEvent event)相当于fireTableChanged。voidsetColumnCount(int columnCount)设置模型中的列数。voidsetColumnIdentifiers(Object[] newIdentifiers)替换模型中的列标识符。voidsetColumnIdentifiers(Vector<?> columnIdentifiers)替换模型中的列标识符。voidsetDataVector(Object[][] dataVector, Object[] columnIdentifiers)取代了的值dataVector与阵列中的值的实例变量dataVector。voidsetDataVector(Vector<? extends Vector> dataVector, Vector<?> columnIdentifiers)将当前dataVector实例变量替换为新的Vector行,dataVector。voidsetNumRows(int rowCount)从Java 2平台v1.3开始已过时。voidsetRowCount(int rowCount)设置模型中的行数。voidsetValueAt(Object aValue, int row, int column)设置单元格的对象值为column和row。-
声明方法的类 javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener
-
-
-
-
构造方法详细信息
-
DefaultTableModel
public DefaultTableModel()
构造一个默认值DefaultTableModel,它是一个零列和零行的表。
-
DefaultTableModel
public DefaultTableModel(int rowCount, int columnCount)构造DefaultTableModel其中rowCount和columnCount为null对象值。- 参数
-
rowCount- 表所包含的行数 -
columnCount- 表所包含的列数 - 另请参见:
-
setValueAt(java.lang.Object, int, int)
-
DefaultTableModel
public DefaultTableModel(Vector<?> columnNames, int rowCount)
构造一个DefaultTableModel,其列数与columnNames和rowCount中null对象值中的元素一样多。 每列的名称将取自columnNames向量。- 参数
-
columnNames-vector包含新列的名称; 如果这是null则模型没有列 -
rowCount- 表所包含的行数 - 另请参见:
-
setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>),setValueAt(java.lang.Object, int, int)
-
DefaultTableModel
public DefaultTableModel(Object[] columnNames, int rowCount)
构造一个DefaultTableModel,列columnNames与rowCount中的元素和rowCount的null对象值中的元素一样多。 每列的名称将取自columnNames数组。- 参数
-
columnNames-array包含新列的名称; 如果这是null则模型没有列 -
rowCount- 表所包含的行数 - 另请参见:
-
setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>),setValueAt(java.lang.Object, int, int)
-
DefaultTableModel
public DefaultTableModel(Vector<? extends Vector> data, Vector<?> columnNames)
构造一个DefaultTableModel并通过将data和columnNames传递给setDataVector方法来初始化该表。- 参数
-
data- 该表的数据,Vector,VectorObject数值Object -
columnNames-vector包含新列的名称 - 另请参见:
-
getDataVector(),setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>)
-
DefaultTableModel
public DefaultTableModel(Object[][] data, Object[] columnNames)
构造一个DefaultTableModel并通过将data和columnNames传递给setDataVector方法来初始化表。Object[][]数组中的第一个索引是行索引,第二个索引是列索引。- 参数
-
data- 表格的数据 -
columnNames- 列的名称 - 另请参见:
-
getDataVector(),setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>)
-
-
方法详细信息
-
getDataVector
public Vector<Vector> getDataVector()
返回Vector的Vectors,其中包含表的数据值。 外部向量中包含的向量每个都是单行值。 换句话说,要到达第1行第5列的单元格:((Vector)getDataVector().elementAt(1)).elementAt(5);
-
setDataVector
public void setDataVector(Vector<? extends Vector> dataVector, Vector<?> columnIdentifiers)
用新的Vector行dataVector替换当前的dataVector实例变量。 每行在dataVector表示为Vector的Object值。columnIdentifiers是新列的名称。 在第一名称columnIdentifiers被映射到第0列dataVector。dataVector每一行dataVector调整为与columnIdentifiers的列数相匹配,如果它太长则截断Vector,或者如果它太短则添加null值。请注意,为
dataVector传入null值dataVector导致未指定的行为,这可能是一个例外。- 参数
-
dataVector- 新的数据向量 -
columnIdentifiers- 列的名称 - 另请参见:
-
getDataVector()
-
setDataVector
public void setDataVector(Object[][] dataVector, Object[] columnIdentifiers)
使用数组dataVector的值替换dataVector实例变量中的值。Object[][]数组中的第一个索引是行索引,第二个索引是列索引。columnIdentifiers是新列的名称。- 参数
-
dataVector- 新的数据向量 -
columnIdentifiers- 列的名称 - 另请参见:
-
setDataVector(Vector, Vector)
-
newDataAvailable
public void newDataAvailable(TableModelEvent event)
相当于fireTableChanged。- 参数
-
event- 更改事件
-
newRowsAdded
public void newRowsAdded(TableModelEvent e)
确保新行具有正确的列数。 这是通过使用在实现setSize在方法Vector其中截断其太长矢量,并追加null■如果它们是太短了。 此方法还向所有侦听器发送tableChanged通知消息。- 参数
-
e- 此TableModelEvent描述了添加行的位置。 如果null则假定所有行都是新添加的 - 另请参见:
-
getDataVector()
-
rowsRemoved
public void rowsRemoved(TableModelEvent event)
相当于fireTableChanged。- 参数
-
event- 更改事件
-
setNumRows
public void setNumRows(int rowCount)
从Java 2平台v1.3开始已过时。 请改用setRowCount。- 参数
-
rowCount- 新的行数
-
setRowCount
public void setRowCount(int rowCount)
设置模型中的行数。 如果新大小大于当前大小,则将新行添加到模型的末尾。如果新大小小于当前大小,rowCount丢弃索引rowCount和更大的所有行。- 参数
-
rowCount- 模型中的行数 - 从以下版本开始:
- 1.3
- 另请参见:
-
setColumnCount(int)
-
addRow
public void addRow(Vector<?> rowData)
在模型的末尾添加一行。 新行将包含null,除非值rowData指定。 将生成要添加的行的通知。- 参数
-
rowData- 正在添加的行的可选数据
-
addRow
public void addRow(Object[] rowData)
在模型的末尾添加一行。 新行将包含null,除非值rowData指定。 将生成要添加的行的通知。- 参数
-
rowData- 正在添加的行的可选数据
-
insertRow
public void insertRow(int row, Vector<?> rowData)在模型中的row处插入一行。 新行将包含null,除非值rowData指定。 将生成要添加的行的通知。- 参数
-
row- 要插入的行的行索引 -
rowData- 正在添加的行的可选数据 - 异常
-
ArrayIndexOutOfBoundsException- 如果行无效
-
insertRow
public void insertRow(int row, Object[] rowData)在模型中的row处插入一行。 新行将包含null,除非值rowData指定。 将生成要添加的行的通知。- 参数
-
row- 要插入的行的行索引 -
rowData- 正在添加的行的可选数据 - 异常
-
ArrayIndexOutOfBoundsException- 如果行无效
-
moveRow
public void moveRow(int start, int end, int to)将一个或多个行从包含范围start到end到模型中的to位置。 移动后,位于索引start行将位于索引to。 此方法将向所有侦听器发送tableChanged通知消息。Examples of moves: 1. 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 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- 参数
-
start- 要移动的起始行索引 -
end- 要移动的结束行索引 -
to- 要移动的行的目标 - 异常
-
ArrayIndexOutOfBoundsException- 如果任何元素将移出表的范围
-
removeRow
public void removeRow(int row)
从模型中删除row处的行。 正在删除的行的通知将被发送给所有侦听器。- 参数
-
row- 要删除的行的行索引 - 异常
-
ArrayIndexOutOfBoundsException- 如果行无效
-
setColumnIdentifiers
public void setColumnIdentifiers(Vector<?> columnIdentifiers)
替换模型中的列标识符。 如果newIdentifier的数量大于当前列数,则会将新列添加到模型中每行的末尾。 如果newIdentifier的数量小于当前列数,则会丢弃行末的所有额外列。- 参数
-
columnIdentifiers- 列标识符的向量。 如果是null,请将模型设置为零列 - 另请参见:
-
setNumRows(int)
-
setColumnIdentifiers
public void setColumnIdentifiers(Object[] newIdentifiers)
替换模型中的列标识符。 如果newIdentifier的数量大于当前列数,则会将新列添加到模型中每行的末尾。 如果newIdentifier的数量小于当前列数,则会丢弃行末的所有额外列。- 参数
-
newIdentifiers- 列标识符数组。 如果是null,请将模型设置为零列 - 另请参见:
-
setNumRows(int)
-
setColumnCount
public void setColumnCount(int columnCount)
设置模型中的列数。 如果新大小大于当前大小,则会使用null单元格值将新列添加到模型的null。 如果新大小小于当前大小,则丢弃索引columnCount和更大的所有列。- 参数
-
columnCount- 模型中的新列数 - 从以下版本开始:
- 1.3
- 另请参见:
-
setColumnCount(int)
-
addColumn
public void addColumn(Object columnName)
向模型添加列。 新列的标识符为columnName,可以为null。 此方法将向所有侦听器发送tableChanged通知消息。 此方法是addColumn(Object, Vector)的封面,它使用null作为数据向量。- 参数
-
columnName- 要添加的列的标识符
-
addColumn
public void addColumn(Object columnName, Vector<?> columnData)
向模型添加列。 新列的标识符为columnName,可以为null。columnData是列的可选数据向量。 如果是null则列中填充null值。 否则,新数据将添加到模型,从第一个元素开始到第0行等。此方法将向所有侦听器发送tableChanged通知消息。- 参数
-
columnName- 要添加的列的标识符 -
columnData- 要添加的列的可选数据
-
addColumn
public void addColumn(Object columnName, Object[] columnData)
向模型添加列。 新列的标识符为columnName。columnData是列的可选数据数组。 如果是null该列填充null值。 否则,新数据将添加到模型,从第一个元素开始到第0行等。此方法将向所有侦听器发送tableChanged通知消息。- 参数
-
columnName- 新创建的列的标识符 -
columnData- 要添加到列的新数据 - 另请参见:
-
addColumn(Object, Vector)
-
getRowCount
public int getRowCount()
返回此数据表中的行数。- Specified by:
-
getRowCount在界面TableModel - 结果
- 模型中的行数
- 另请参见:
-
TableModel.getColumnCount()
-
getColumnCount
public int getColumnCount()
返回此数据表中的列数。- Specified by:
-
getColumnCount在界面TableModel - 结果
- 模型中的列数
- 另请参见:
-
TableModel.getRowCount()
-
getColumnName
public String getColumnName(int column)
返回列名称。- Specified by:
-
getColumnName在界面TableModel - 重写:
-
getColumnName在类AbstractTableModel - 参数
-
column- 要查询的列 - 结果
-
使用
columnIdentifiers相应成员的字符串值的此列的名称。 如果columnIdentifiers没有此索引的条目,则返回超类提供的默认名称。
-
isCellEditable
public boolean isCellEditable(int row, int column)无论参数值如何,都返回true。- Specified by:
-
isCellEditable,界面TableModel - 重写:
-
isCellEditable在类AbstractTableModel - 参数
-
row- 要查询其值的行 -
column- 要查询其值的列 - 结果
- 真正
- 另请参见:
-
setValueAt(java.lang.Object, int, int)
-
getValueAt
public Object getValueAt(int row, int column)
返回单元格的属性值row和column。- Specified by:
-
getValueAt在界面TableModel - 参数
-
row- 要查询其值的行 -
column- 要查询其值的列 - 结果
- 指定单元格中的值Object
- 异常
-
ArrayIndexOutOfBoundsException- 如果给出了无效的行或列
-
setValueAt
public void setValueAt(Object aValue, int row, int column)
设置单元格的对象值为column和row。aValue是新值。 此方法将生成tableChanged通知。- Specified by:
-
setValueAt在界面TableModel - 重写:
-
setValueAt在课程AbstractTableModel - 参数
-
aValue- 新值; 这可以是null -
row- 要更改其值的行 -
column- 要更改其值的列 - 异常
-
ArrayIndexOutOfBoundsException- 如果给出了无效的行或列 - 另请参见:
-
TableModel.getValueAt(int, int),TableModel.isCellEditable(int, int)
-
convertToVector
protected static Vector<Object> convertToVector(Object[] anArray)
返回包含与数组相同的对象的向量。- 参数
-
anArray- 要转换的数组 - 结果
-
新的载体;
如果
anArray是null,则返回null
-
-