java.lang.Object
javax.swing.table.DefaultTableColumnModel
- 所有已实现的接口:
PropertyChangeListener,Serializable,EventListener,ListSelectionListener,TableColumnModel
public class DefaultTableColumnModel extends Object implements TableColumnModel , PropertyChangeListener , ListSelectionListener , Serializable
JTable 的标准列处理程序。
Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder 。
- 参见:
-
字段摘要
字段修饰符和类型Field描述protected ChangeEvent更改事件(只需要一个)protected int每列之间的宽度边距protected boolean此列模型中允许的列选择protected EventListenerListTableColumnModelListener 列表protected ListSelectionModel用于跟踪列选择的模型protected Vector<TableColumn>此模型中的 TableColumn 对象数组protected int所有列的组合宽度的本地缓存 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述voidaddColumn(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) 使用equals进行比较时,返回标识符等于identifier的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一个ListSelectionListener,它在列选择更改时转发ListSelectionEvents。
-
字段详细信息
-
tableColumns
此模型中的 TableColumn 对象数组 -
selectionModel
用于跟踪列选择的模型 -
columnMargin
protected int columnMargin每列之间的宽度边距 -
listenerList
TableColumnModelListener 列表 -
changeEvent
更改事件(只需要一个) -
columnSelectionAllowed
protected boolean columnSelectionAllowed此列模型中允许的列选择 -
totalColumnWidth
protected int totalColumnWidth所有列的组合宽度的本地缓存
-
-
构造方法详细信息
-
DefaultTableColumnModel
public DefaultTableColumnModel()创建默认表列模型。
-
-
方法详情
-
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。位于columnIndex的旧列现在可以在newIndex找到。以前位于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
使用equals进行比较时,返回标识符等于identifier的tableColumns数组中第一列的索引。- 指定者:
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)的视图/控制器对象的责任。视图/控制器不需要从左到右顺序显示列。例如,列可以从右到左显示以适应locale首选项,或者某些列可以根据用户的请求隐藏。因为模型不知道列在屏幕上的布局方式,所以给定的xPosition不应被视为 2D 图形空间中的坐标。相反,它应该被认为是从模型中第一列开始的宽度。如果需要二维空间中给定 X 坐标的列索引,则可以使用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) 设置是否允许列选择。默认为假。- 指定者:
setColumnSelectionAllowed在接口TableColumnModel中- 参数:
flag- 如果允许列选择则为真,否则为假- 参见:
-
getColumnSelectionAllowed
public boolean getColumnSelectionAllowed()如果允许列选择,则返回 true,否则返回 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
返回在此模型上注册的所有列模型监听的数组。- 返回:
-
所有此默认表列模型的
ColumnModelListeners 或空数组(如果当前未注册列模型监听器) - 自从:
- 1.4
- 参见:
-
fireColumnAdded
通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。- 参数:
e- 收到的事件- 参见:
-
fireColumnRemoved
通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。- 参数:
e- 收到的事件- 参见:
-
fireColumnMoved
通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。- 参数:
e- 收到的事件- 参见:
-
fireColumnSelectionChanged
通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。- 参数:
e- 收到的事件- 参见:
-
fireColumnMarginChanged
protected void fireColumnMarginChanged()通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。- 参见:
-
getListeners
返回当前在此模型上注册为FooListener的所有对象的数组。FooListener是使用addFooListener方法注册的。您可以使用类文字指定
listenerType参数,例如FooListener.class。例如,您可以使用以下代码查询DefaultTableColumnModelm的列模型监听器:ColumnModelListener[] cmls = (ColumnModelListener[])(m.getListeners(ColumnModelListener.class));
如果不存在这样的监听器,则此方法返回一个空数组。- 类型参数:
T- 监听器类型- 参数:
listenerType- 请求的监听器类型- 返回:
-
在此模型上注册为
FooListener的所有对象的数组,如果没有添加此类监听器,则为空数组 - 抛出:
ClassCastException- 如果listenerType没有指定实现java.util.EventListener的类或接口- 自从:
- 1.3
- 参见:
-
propertyChange
属性更改监听更改方法。用于跟踪对列宽或首选列宽的更改。- 指定者:
propertyChange在接口PropertyChangeListener中- 参数:
evt-PropertyChangeEvent
-
valueChanged
一个ListSelectionListener,它在列选择更改时转发ListSelectionEvents。- 指定者:
valueChanged在接口ListSelectionListener中- 参数:
e- 更改事件
-
createSelectionModel
创建一个新的默认列表选择模型。- 返回:
- 新创建的默认列表选择模型。
-
recalcWidthCache
protected void recalcWidthCache()重新计算所有列的总组合宽度。更新totalColumnWidth属性。
-