软件包 javax.swing.table
提供用于处理javax.swing.JTable
的类和接口。
请参见:
描述
接口摘要 | |
---|---|
TableCellEditor | 此接口定义了要成为组件(如 JListBox 、JComboBox 、JTree 或 JTable )的值编辑器的任意对象需要实现的方法。 |
TableCellRenderer | 此接口定义了要成为 JTable 中单元格渲染器的任意对象所需的方法。 |
TableColumnModel | 定义了适合用于 JTable 的表列模型对象的要求。 |
TableModel | TableModel 接口指定了 JTable 用于询问表格式数据模型的方法。 |
类摘要 | |
---|---|
AbstractTableModel | 此抽象类为 TableModel 接口中的大多数方法提供默认实现。 |
DefaultTableCellRenderer | 呈现(显示) JTable 中每个单元格的标准类。 |
DefaultTableCellRenderer.UIResource | DefaultTableCellRenderer 的一个子类,它实现 UIResource 。 |
DefaultTableColumnModel | JTable 的标准列处理程序。 |
DefaultTableModel | 这是 TableModel 的一个实现,它使用一个 Vector 来存储单元格的值对象,该 Vector 由多个 Vector 组成。 |
JTableHeader | 这是管理 JTable 的头的对象。 |
TableColumn | TableColumn 表示 JTable 中列的所有属性,如宽度、大小可调整性、最小和最大宽度。 |
TableRowSorter<M extends TableModel> | RowSorter 的一个实现,它使用 TableModel 提供排序和过滤操作。 |
TableStringConverter | TableStringConverter 用于将对象从模型转换为字符串。 |
软件包 javax.swing.table 的描述
提供用于处理 javax.swing.JTable
的类和接口。JTable
是 Swing 的网格或表格视图,用于为应用程序内的表格数据结构构造用户界面。如果您想控制如何构造、更新和呈现这些表,以及如何显示和管理与该表关联的数据,请使用此包。
注:大多数 Swing API 都不是 线程安全的。有关细节,请参阅 The Java Tutorial 中的 Threads and Swing 一节。
相关文档
有关概述、教程、示例、指南和工具文档的信息,请参阅:- The Java Tutorial 中的 How to Use Tables 一节。
javax.swing.table
类 AbstractTableModel
java.lang.Object javax.swing.table.AbstractTableModel
-
所有已实现的接口:
- Serializable, TableModel
-
直接已知子类:
- DefaultTableModel
public abstract class AbstractTableModel extends Object implements TableModel, Serializable
此抽象类为 TableModel
接口中的大多数方法提供默认实现。它负责管理侦听器,并为生成 TableModelEvents
以及将其调度到侦听器提供方便。要创建一个具体的 TableModel
作为 AbstractTableModel
的子类,只需提供对以下三个方法的实现:
public int getRowCount(); public int getColumnCount(); public Object getValueAt(int row, int column);
警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前的序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
字段摘要 | |
---|---|
protected EventListenerList | listenerList 侦听器的列表 |
构造方法摘要 | |
---|---|
AbstractTableModel() |
方法摘要 | ||
---|---|---|
void | addTableModelListener(TableModelListener l) 每次数据模型发生更改时,就向被通知的列表添加一个侦听器。 | |
int | findColumn(String columnName) 返回具有给定名称的列。 | |
void | fireTableCellUpdated(int row, int column) 通知所有侦听器,已更新 [row, column] 处的单元格值。 | |
void | fireTableChanged(TableModelEvent e) 将给定的通知事件转发到所有将自身注册为此表模型的侦听器的 TableModelListeners 。 | |
void | fireTableDataChanged() 通知所有侦听器,表的所有行单元格值可能已更改。 | |
void | fireTableRowsDeleted(int firstRow, int lastRow) 通知所有侦听器,已删除范围在 [firstRow, lastRow] (包括)的行。 | |
void | fireTableRowsInserted(int firstRow, int lastRow) 通知所有侦听器,已插入范围在 [firstRow, lastRow] (包括)的行。 | |
void | fireTableRowsUpdated(int firstRow, int lastRow) 通知所有侦听器,已更新范围在 [firstRow, lastRow] (包括)的行。 | |
void | fireTableStructureChanged() 通知所有侦听器,表的结构已更改。 | |
Class<?> | getColumnClass(int columnIndex) 返回 Object.class 而不管 columnIndex 是多少。 | |
String | getColumnName(int column) 返回列默认名称,其中列使用以下工作表约定:A、B、C……Z、AA、AB 等等。 | |
| getListeners(Class<T> listenerType) 返回一个包含当前注册为此 AbstractTableModel 上的 FooListener 的所有对象的数组。 | |
TableModelListener[] | getTableModelListeners() 返回一个包含在此模型上注册的所有表模型侦听器的数组。 | |
boolean | isCellEditable(int rowIndex, int columnIndex) 返回 false。 | |
void | removeTableModelListener(TableModelListener l) 每次数据模型发生更改时,就从被通知的列表移除一个侦听器。 | |
void | setValueAt(Object aValue, int rowIndex, int columnIndex) 由于提供了此空实现,因此,如果用户的数据模型是不可编辑的,则他们不必实现此方法。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从接口 javax.swing.table.TableModel 继承的方法 |
---|
getColumnCount, getRowCount, getValueAt |
字段详细信息 |
---|
listenerList
protected EventListenerList listenerList
-
侦听器的列表
构造方法详细信息 |
---|
AbstractTableModel
public AbstractTableModel()
方法详细信息 |
---|
getColumnName
public String getColumnName(int column)
-
返回列默认名称,其中列使用以下工作表约定:A、B、C……Z、AA、AB 等等。如果无法找到
column
,则返回一个空字符串。 -
-
指定者:
-
接口
TableModel
中的getColumnName
-
接口
-
-
参数:
-
column
- 被查询的列
返回:
-
包含
column
默认名称的字符串
-
findColumn
public int findColumn(String columnName)
-
返回具有给定名称的列。由于实现是未用过的,因此,如果经常调用此方法,则应该重写此方法。此方法不在
TableModel
接口中,也不被JTable
使用。 -
-
-
参数:
-
columnName
- 包含要查找的列名称的字符串
返回:
-
名称为
columnName
的列,如果未找到该列,则返回 -1
-
getColumnClass
public Class<?> getColumnClass(int columnIndex)
-
返回
Object.class
而不管columnIndex
是多少。 -
-
指定者:
-
接口
TableModel
中的getColumnClass
-
接口
-
-
参数:
-
columnIndex
- 被查询的列
返回:
- Object.class
-
isCellEditable
public boolean isCellEditable(int rowIndex, int columnIndex)
- 返回 false。这是所有单元格的默认实现。
-
-
指定者:
-
接口
TableModel
中的isCellEditable
-
接口
-
-
参数:
-
rowIndex
- 被查询的行 -
columnIndex
- 被查询的列
返回:
- false 另请参见:
-
TableModel.setValueAt(java.lang.Object, int, int)
-
setValueAt
public void setValueAt(Object aValue, int rowIndex, int columnIndex)
- 由于提供了此空实现,因此,如果用户的数据模型是不可编辑的,则他们不必实现此方法。
-
-
指定者:
-
接口
TableModel
中的setValueAt
-
接口
-
-
参数:
-
aValue
- 要分配给单元格的值 -
rowIndex
- 单元格所在行 -
columnIndex
- 单元格所在列
另请参见:
-
TableModel.getValueAt(int, int)
,TableModel.isCellEditable(int, int)
-
addTableModelListener
public void addTableModelListener(TableModelListener l)
- 每次数据模型发生更改时,就向被通知的列表添加一个侦听器。
-
-
指定者:
-
接口
TableModel
中的addTableModelListener
-
接口
-
-
参数:
-
l
- TableModelListener
-
removeTableModelListener
public void removeTableModelListener(TableModelListener l)
- 每次数据模型发生更改时,就从被通知的列表移除一个侦听器。
-
-
指定者:
-
接口
TableModel
中的removeTableModelListener
-
接口
-
-
参数:
-
l
- TableModelListener
-
getTableModelListeners
public TableModelListener[] getTableModelListeners()
- 返回一个包含在此模型上注册的所有表模型侦听器的数组。
-
-
-
返回:
-
此模型的所有
TableModelListener
,如果当前没有已注册的表模型侦听器,则返回一个空数组
从以下版本开始:
- 1.4 另请参见:
-
addTableModelListener(javax.swing.event.TableModelListener)
,removeTableModelListener(javax.swing.event.TableModelListener)
-
此模型的所有
fireTableDataChanged
public void fireTableDataChanged()
-
通知所有侦听器,表的所有行单元格值可能已更改。行数也可能已更改,并且
JTable
应该从头开始重新绘制该表。假定表的结构(如同列的顺序)是相同的。 -
fireTableStructureChanged
public void fireTableStructureChanged()
-
通知所有侦听器,表的结构已更改。表中的列数,新列的名称和类型可能与以前的状态不同。如果
JTable
接收此事件,并且设置了其autoCreateColumnsFromModel
标志,则它丢弃之前具有的所有表列,并按列在模型中出现的顺序重新分配默认列。这与对JTable
调用setModel(TableModel)
具有相同的效果。 -
-
-
另请参见:
-
TableModelEvent
,EventListenerList
-
fireTableRowsInserted
public void fireTableRowsInserted(int firstRow, int lastRow)
-
通知所有侦听器,已插入范围在
[firstRow, lastRow]
(包括)的行。 -
-
-
参数:
-
firstRow
- 第一行 -
lastRow
- 最后一行
另请参见:
-
TableModelEvent
,EventListenerList
-
fireTableRowsUpdated
public void fireTableRowsUpdated(int firstRow, int lastRow)
-
通知所有侦听器,已更新范围在
[firstRow, lastRow]
(包括)的行。 -
-
-
参数:
-
firstRow
- 第一行 -
lastRow
- 最后一行
另请参见:
-
TableModelEvent
,EventListenerList
-
fireTableRowsDeleted
public void fireTableRowsDeleted(int firstRow, int lastRow)
-
通知所有侦听器,已删除范围在
[firstRow, lastRow]
(包括)的行。 -
-
-
参数:
-
firstRow
- 第一行 -
lastRow
- 最后一行
另请参见:
-
TableModelEvent
,EventListenerList
-
fireTableCellUpdated
public void fireTableCellUpdated(int row, int column)
-
通知所有侦听器,已更新
[row, column]
处的单元格值。 -
-
-
参数:
-
row
- 已更新的单元格所在行 -
column
- 已更新的单元格所在列
另请参见:
-
TableModelEvent
,EventListenerList
-
fireTableChanged
public void fireTableChanged(TableModelEvent e)
-
将给定的通知事件转发到所有将自身注册为此表模型的侦听器的
TableModelListeners
。 -
-
-
参数:
-
e
- 要转发的事件
另请参见:
-
addTableModelListener(javax.swing.event.TableModelListener)
,TableModelEvent
,EventListenerList
-
getListeners
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
-
返回一个包含当前注册为此
AbstractTableModel
上的FooListener
的所有对象的数组。FooListener
是用addFooListener
方法注册的。可以使用 class 字面值(如
FooListener.class
)来指定listenerType
参数。例如,可以通过以下代码查询模型m
,以获得其表模型侦听器:TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class));
如果不存在这样的侦听器,则此方法将返回一个空数组。 -
-
-
参数:
-
listenerType
- 所请求侦听器的类型;此参数应该指定一个从java.util.EventListener
继承的接口
返回:
-
在此组件上注册为
FooListener
的所有对象组成的数组,如果没有添加这样的侦听器,则返回一个空数组
抛出:
-
ClassCastException
- 如果listenerType
没有指定实现java.util.EventListener
的类或接口
从以下版本开始:
- 1.3 另请参见:
-
getTableModelListeners()
-