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
Modifier and TypeFieldDescriptionprotected ChangeEvent
更改事件(仅需要一个)protected int
每列之间的宽度边距protected boolean
此列模型中允许列选择protected EventListenerList
TableColumnModelListener列表protected ListSelectionModel
用于跟踪列选择的模型protected Vector
<TableColumn> 此模型中的TableColumn对象数组protected int
所有列的组合宽度的本地缓存 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addColumn
(TableColumn aColumn) 将aColumn
附加到tableColumns
数组的末尾。void
为表列模型事件添加侦听器。protected ListSelectionModel
创建新的默认列表选择模型。protected void
通知所有已注册对此事件类型感兴趣的侦听器。protected void
通知所有已注册对此事件类型感兴趣的侦听器。protected void
通知所有已注册对此事件类型感兴趣的侦听器。protected void
通知所有已注册对此事件类型感兴趣的侦听器。protected void
通知所有已注册对此事件类型感兴趣的侦听器。getColumn
(int columnIndex) 返回columnIndex
处列的TableColumn
对象。int
返回tableColumns
数组中的列数。int
getColumnIndex
(Object identifier) 返回identifier
等于equals
比较时tableColumns
数组中第一个列的索引。int
getColumnIndexAtX
(int x) 返回x
位置处的列的索引,如果没有列覆盖此点,则返回-1。int
返回TableColumn
的宽度边距。返回在此模型上注册的所有列模型侦听器的数组。返回模型中所有列的Enumeration
。boolean
如果允许列选择,则返回true,否则返回false。<T extends EventListener>
T[]getListeners
(Class<T> listenerType) 返回当前在此模型上注册为FooListener
的所有对象的数组。int
返回所选列的数量。int[]
返回所选列的数组。返回用于维护列选择状态的ListSelectionModel
。int
返回所有列的总组合宽度。void
moveColumn
(int columnIndex, int newIndex) 将columnIndex
处的列和标题移动到newIndex
。void
属性更改侦听器更改方法。protected void
重新计算所有列的总组合宽度。void
removeColumn
(TableColumn column) 从tableColumns
数组中删除column
。void
删除表列模型事件的侦听器。void
setColumnMargin
(int newMargin) 将列边距设置为newMargin
。void
setColumnSelectionAllowed
(boolean flag) 设置是否允许列选择。void
setSelectionModel
(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
返回当前注册为此模型的所有对象的数组FooListener
s。使用addFooListener
方法注册FooListener
s。您可以使用类文字指定
listenerType
参数,例如FooListener.class
。例如,您可以使用以下代码查询DefaultTableColumnModel
m
的列模型侦听器:ColumnModelListener[] cmls = (ColumnModelListener[])(m.getListeners(ColumnModelListener.class));
如果不存在此类侦听器,则此方法返回一个空数组。- 类型参数:
-
T
- 侦听器类型 - 参数:
-
listenerType
- 请求的侦听器类型 - 返回:
-
注册为此模型的所有对象的数组
FooListener
s,如果没有添加此类侦听器,则返回一个空数组 - 抛出:
-
ClassCastException
- 如果listenerType
未指定实现java.util.EventListener
的类或接口 - 自:
- 1.3
- 参见:
-
propertyChange
属性更改侦听器更改方法。用于跟踪列宽度或首选列宽度的更改。- 指定者:
-
propertyChange
在接口PropertyChangeListener
- 参数:
-
evt
-PropertyChangeEvent
-
valueChanged
当列选择更改时,转发ListSelectionEvents
的ListSelectionListener
。- 指定者:
-
valueChanged
在接口ListSelectionListener
- 参数:
-
e
- 更改事件
-
createSelectionModel
创建一个新的默认列表选择模型。- 返回:
- 新创建的默认列表选择模型。
-
recalcWidthCache
protected void recalcWidthCache()重新计算所有列的总组合宽度。更新totalColumnWidth
属性。
-