java.lang.Object
javax.swing.table.DefaultTableColumnModel
- 所有已实现的接口:
-
PropertyChangeListener,Serializable,EventListener,ListSelectionListener,TableColumnModel
public class DefaultTableColumnModel extends Object implements TableColumnModel, PropertyChangeListener, ListSelectionListener, Serializable
JTable的标准列处理程序。
警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans包中。请参阅XMLEncoder。
- 参见:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ChangeEvent更改事件(仅需要一个)protected int每列之间的宽度边距protected boolean此列模型中允许列选择protected EventListenerListTableColumnModelListener列表protected ListSelectionModel用于跟踪列选择的模型protected Vector<TableColumn> 此模型中的TableColumn对象数组protected int所有列的组合宽度的本地缓存 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddColumn(TableColumn aColumn) 将aColumn附加到tableColumns数组的末尾。void为表列模型事件添加侦听器。protected ListSelectionModel创建新的默认列表选择模型。protected void通知所有已注册对此事件类型感兴趣的侦听器。protected void通知所有已注册对此事件类型感兴趣的侦听器。protected void通知所有已注册对此事件类型感兴趣的侦听器。protected void通知所有已注册对此事件类型感兴趣的侦听器。protected void通知所有已注册对此事件类型感兴趣的侦听器。getColumn(int columnIndex) 返回columnIndex处列的TableColumn对象。int返回tableColumns数组中的列数。intgetColumnIndex(Object identifier) 返回identifier等于equals比较时tableColumns数组中第一个列的索引。intgetColumnIndexAtX(int x) 返回x位置处的列的索引,如果没有列覆盖此点,则返回-1。int返回TableColumn的宽度边距。返回在此模型上注册的所有列模型侦听器的数组。返回模型中所有列的Enumeration。boolean如果允许列选择,则返回true,否则返回false。<T extends EventListener>
T[]getListeners(Class<T> listenerType) 返回当前在此模型上注册为FooListener的所有对象的数组。int返回所选列的数量。int[]返回所选列的数组。返回用于维护列选择状态的ListSelectionModel。int返回所有列的总组合宽度。voidmoveColumn(int columnIndex, int newIndex) 将columnIndex处的列和标题移动到newIndex。void属性更改侦听器更改方法。protected void重新计算所有列的总组合宽度。voidremoveColumn(TableColumn column) 从tableColumns数组中删除column。void删除表列模型事件的侦听器。voidsetColumnMargin(int newMargin) 将列边距设置为newMargin。voidsetColumnSelectionAllowed(boolean flag) 设置是否允许列选择。voidsetSelectionModel(ListSelectionModel newModel) 将此TableColumnModel的选择模型设置为newModel,并从新选择模型注册侦听器通知。void当列选择更改时,转发ListSelectionEvents的ListSelectionListener。
-
Field Details
-
tableColumns
此模型中的TableColumn对象数组 -
selectionModel
用于跟踪列选择的模型 -
columnMargin
protected int columnMargin每列之间的宽度边距 -
listenerList
TableColumnModelListener列表 -
changeEvent
更改事件(仅需要一个) -
columnSelectionAllowed
protected boolean columnSelectionAllowed此列模型中允许列选择 -
totalColumnWidth
protected int totalColumnWidth所有列的组合宽度的本地缓存
-
-
Constructor Details
-
DefaultTableColumnModel
public DefaultTableColumnModel()创建默认的表列模型。
-
-
Method Details
-
addColumn
将aColumn附加到tableColumns数组的末尾。此方法还向其侦听器发布columnAdded事件。- 指定者:
-
addColumn在接口TableColumnModel中 - 参数:
-
aColumn- 要添加的TableColumn - 抛出:
-
IllegalArgumentException- 如果aColumn为null - 参见:
-
removeColumn
从tableColumns数组中删除column。如果column不在表的列列表中,则此方法将不执行任何操作。调用tile来调整标题和表视图的大小。此方法还向其侦听器发布columnRemoved事件。- 指定者:
-
removeColumn在接口TableColumnModel中 - 参数:
-
column- 要移除的TableColumn - 参见:
-
moveColumn
public void moveColumn(int columnIndex, int newIndex) 将columnIndex处的列和标题移动到newIndex。现在在newIndex处找到columnIndex处的旧列。原来在newIndex处的列向左或向右移动以腾出空间。如果columnIndex等于newIndex,则不会移动任何列。此方法还向其侦听器发布columnMoved事件。- 指定者:
-
moveColumn在接口TableColumnModel中 - 参数:
-
columnIndex- 要移动的列的索引 -
newIndex- 移动列的新索引 - 抛出:
-
IllegalArgumentException- 如果column或newIndex不在有效范围内
-
setColumnMargin
public void setColumnMargin(int newMargin) 将列边距设置为newMargin。此方法还向其侦听器发布columnMarginChanged事件。- 指定者:
-
setColumnMargin在接口TableColumnModel中 - 参数:
-
newMargin- 新的边距宽度,以像素为单位 - 参见:
-
getColumnCount
public int getColumnCount()返回tableColumns数组中的列数。- 指定者:
-
getColumnCount在接口TableColumnModel中 - 返回:
-
tableColumns数组中的列数 - 参见:
-
getColumns
返回模型中所有列的Enumeration。- 指定者:
-
getColumns在接口TableColumnModel中 - 返回:
-
模型中所有列的
Enumeration
-
getColumnIndex
返回tableColumns数组中第一个列的索引,其标识符等于identifier,使用equals进行比较。- 指定者:
-
getColumnIndex在接口TableColumnModel中 - 参数:
-
identifier- 标识对象 - 返回:
-
第一个在
tableColumns数组中具有与identifier相等标识的列的索引 - 抛出:
-
IllegalArgumentException- 如果identifier为null,或者没有TableColumn具有此identifier - 参见:
-
getColumn
返回columnIndex处的TableColumn对象。- 指定者:
-
getColumn在接口TableColumnModel中 - 参数:
-
columnIndex- 所需列的索引 - 返回:
-
columnIndex处的TableColumn对象 - 抛出:
-
ArrayIndexOutOfBoundsException- 如果columnIndex超出范围:(columnIndex < 0 || columnIndex >= getColumnCount())
-
getColumnMargin
public int getColumnMargin()返回TableColumn的宽度边距。默认的columnMargin为1。- 指定者:
-
getColumnMargin在接口TableColumnModel中 - 返回:
-
TableColumn的最大宽度 - 参见:
-
getColumnIndexAtX
public int getColumnIndexAtX(int x) 返回位于位置x的列的索引,如果没有列覆盖此点,则返回-1。根据Swing的可分离模型架构,TableColumnModel不知道表列实际上在屏幕上如何显示。列的视觉呈现是使用此模型的视图/控制器对象的责任(通常是JTable)。视图/控制器不需要按顺序从左到右显示列。例如,列可以从右向左显示以适应区域设置偏好,或者某些列可能根据用户的请求隐藏。因为模型不知道列在屏幕上的布局方式,所以给定的xPosition不应被视为二维图形空间中的坐标。相反,它应被视为从模型中第一列的开头开始的宽度。如果需要给定X坐标的列索引在2D空间中的位置,可以使用JTable.columnAtPoint。- 指定者:
-
getColumnIndexAtX在接口TableColumnModel中 - 参数:
-
x- 感兴趣的水平位置 - 返回:
- 列的索引,如果找不到列则返回-1
- 参见:
-
getTotalColumnWidth
public int getTotalColumnWidth()返回所有列的总宽度。- 指定者:
-
getTotalColumnWidth在接口TableColumnModel中 - 返回:
-
totalColumnWidth属性
-
setSelectionModel
将此TableColumnModel的选择模型设置为newModel并从新选择模型注册监听器通知。如果newModel为null,则抛出异常。- 指定者:
-
setSelectionModel在接口TableColumnModel中 - 参数:
-
newModel- 新的选择模型 - 抛出:
-
IllegalArgumentException- 如果newModel为null - 参见:
-
getSelectionModel
返回用于维护列选择状态的ListSelectionModel。- 指定者:
-
getSelectionModel在接口TableColumnModel中 - 返回:
-
提供列选择状态的对象。如果不允许行选择,则返回
null。 - 参见:
-
setColumnSelectionAllowed
public void setColumnSelectionAllowed(boolean flag) 设置是否允许列选择。默认值为false。- 指定者:
-
setColumnSelectionAllowed在接口TableColumnModel中 - 参数:
-
flag- 如果允许列选择则为true,否则为false - 参见:
-
getColumnSelectionAllowed
public boolean getColumnSelectionAllowed()如果允许列选择,则返回true,否则返回false。默认值为false。- 指定者:
-
getColumnSelectionAllowed在接口TableColumnModel中 - 返回:
-
columnSelectionAllowed属性 - 参见:
-
getSelectedColumns
public int[] getSelectedColumns()返回选定列的数组。如果selectionModel为null,则返回一个空数组。- 指定者:
-
getSelectedColumns在接口TableColumnModel中 - 返回:
-
选定列的数组,如果没有选定任何内容或
selectionModel为null,则返回一个空数组
-
getSelectedColumnCount
public int getSelectedColumnCount()返回选定列的数量。- 指定者:
-
getSelectedColumnCount在接口TableColumnModel中 - 返回:
- 选定列的数量
-
addColumnModelListener
添加表列模型事件的监听器。- 指定者:
-
addColumnModelListener在接口TableColumnModel中 - 参数:
-
x- 一个TableColumnModelListener对象
-
removeColumnModelListener
移除表列模型事件的监听器。- 指定者:
-
removeColumnModelListener在接口TableColumnModel中 - 参数:
-
x- 一个TableColumnModelListener对象
-
getColumnModelListeners
返回在此模型上注册的所有列模型监听器的数组。- 返回:
-
所有默认表列模型的
ColumnModelListener或如果当前没有注册列模型监听器,则返回一个空数组 - 自:
- 1.4
- 参见:
-
fireColumnAdded
通知所有已注册对此事件类型感兴趣的监听器。事件实例是使用传递给fire方法的参数延迟创建的。- 参数:
-
e- 收到的事件 - 参见:
-
fireColumnRemoved
通知所有已注册对此事件类型感兴趣的监听器。事件实例是使用传递给fire方法的参数延迟创建的。- 参数:
-
e- 收到的事件 - 参见:
-
fireColumnMoved
通知所有已注册对此事件类型感兴趣的侦听器。事件实例是使用传递给fire方法的参数延迟创建的。- 参数:
-
e- 收到的事件 - 参见:
-
fireColumnSelectionChanged
通知所有已注册对此事件类型感兴趣的侦听器。事件实例是使用传递给fire方法的参数延迟创建的。- 参数:
-
e- 收到的事件 - 参见:
-
fireColumnMarginChanged
protected void fireColumnMarginChanged()通知所有已注册对此事件类型感兴趣的侦听器。事件实例是使用传递给fire方法的参数延迟创建的。- 参见:
-
getListeners
返回当前注册为此模型的所有对象的数组FooListeners。使用addFooListener方法注册FooListeners。您可以使用类文字指定
listenerType参数,例如FooListener.class。例如,您可以使用以下代码查询DefaultTableColumnModelm的列模型侦听器:ColumnModelListener[] cmls = (ColumnModelListener[])(m.getListeners(ColumnModelListener.class));
如果不存在此类侦听器,则此方法返回一个空数组。- 类型参数:
-
T- 侦听器类型 - 参数:
-
listenerType- 请求的侦听器类型 - 返回:
-
注册为此模型的所有对象的数组
FooListeners,如果没有添加此类侦听器,则返回一个空数组 - 抛出:
-
ClassCastException- 如果listenerType未指定实现java.util.EventListener的类或接口 - 自:
- 1.3
- 参见:
-
propertyChange
属性更改侦听器更改方法。用于跟踪列宽度或首选列宽度的更改。- 指定者:
-
propertyChange在接口PropertyChangeListener - 参数:
-
evt-PropertyChangeEvent
-
valueChanged
当列选择更改时,转发ListSelectionEvents的ListSelectionListener。- 指定者:
-
valueChanged在接口ListSelectionListener - 参数:
-
e- 更改事件
-
createSelectionModel
创建一个新的默认列表选择模型。- 返回:
- 新创建的默认列表选择模型。
-
recalcWidthCache
protected void recalcWidthCache()重新计算所有列的总组合宽度。更新totalColumnWidth属性。
-