- 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开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。- 另请参见:
-
JTable
, Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 protected ChangeEvent
changeEvent
变更事件(只需要一个)protected int
columnMargin
每列之间的宽度边距protected boolean
columnSelectionAllowed
此列模型中允许列选择protected EventListenerList
listenerList
TableColumnModelListener列表protected ListSelectionModel
selectionModel
用于跟踪列选择的模型protected Vector<TableColumn>
tableColumns
此模型中的TableColumn对象数组protected int
totalColumnWidth
所有列的组合宽度的本地缓存
-
构造方法摘要
构造方法 构造器 描述 DefaultTableColumnModel()
创建默认表列模型。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
addColumn(TableColumn aColumn)
将aColumn
追加到tableColumns
数组的末尾。void
addColumnModelListener(TableColumnModelListener x)
为表列模型事件添加侦听器。protected ListSelectionModel
createSelectionModel()
创建新的默认列表选择模型。protected void
fireColumnAdded(TableColumnModelEvent e)
通知所有已注册对此事件类型的通知感兴趣的听众。protected void
fireColumnMarginChanged()
通知所有已注册对此事件类型的通知感兴趣的听众。protected void
fireColumnMoved(TableColumnModelEvent e)
通知所有已注册对此事件类型的通知感兴趣的听众。protected void
fireColumnRemoved(TableColumnModelEvent e)
通知所有已注册对此事件类型的通知感兴趣的听众。protected void
fireColumnSelectionChanged(ListSelectionEvent e)
通知所有已注册对此事件类型的通知感兴趣的听众。TableColumn
getColumn(int columnIndex)
返回列的TableColumn
对象columnIndex
。int
getColumnCount()
返回tableColumns
数组中的列数。int
getColumnIndex(Object identifier)
返回tableColumns
数组中第一列的索引,其标识符等于identifier
,使用equals
进行比较时。int
getColumnIndexAtX(int x)
返回位于位置x
的列的索引,如果没有列覆盖此点,则返回-1。int
getColumnMargin()
返回TableColumn
的宽度边距。TableColumnModelListener[]
getColumnModelListeners()
返回在此模型上注册的所有列模型侦听器的数组。Enumeration<TableColumn>
getColumns()
返回Enumeration
中所有列的Enumeration
。boolean
getColumnSelectionAllowed()
如果允许列选择,则返回true,否则返回false。<T extends EventListener>
T[]getListeners(类<T> listenerType)
返回此模型上当前注册为FooListener
的所有对象的数组。int
getSelectedColumnCount()
返回选定的列数。int[]
getSelectedColumns()
返回所选列的数组。ListSelectionModel
getSelectionModel()
返回用于维护列选择状态的ListSelectionModel
。int
getTotalColumnWidth()
返回所有列的总组合宽度。void
moveColumn(int columnIndex, int newIndex)
将列和标题移动到columnIndex
到newIndex
。void
propertyChange(PropertyChangeEvent evt)
属性更改侦听器更改方法。protected void
recalcWidthCache()
重新计算所有列的总组合宽度。void
removeColumn(TableColumn column)
删除column
从tableColumns
阵列。void
removeColumnModelListener(TableColumnModelListener x)
删除表列模型事件的侦听器。void
setColumnMargin(int newMargin)
将列边距设置为newMargin
。void
setColumnSelectionAllowed(boolean flag)
设置是否允许列选择。void
setSelectionModel(ListSelectionModel newModel)
设置此选择模型TableColumnModel
至newModel
,并注册了来自新选择模型的通知。void
valueChanged(ListSelectionEvent e)
ListSelectionListener
,当列选择更改时转发ListSelectionEvents
。
-
-
-
字段详细信息
-
tableColumns
protected Vector<TableColumn> tableColumns
此模型中的TableColumn对象数组
-
selectionModel
protected ListSelectionModel selectionModel
用于跟踪列选择的模型
-
columnMargin
protected int columnMargin
每列之间的宽度边距
-
listenerList
protected EventListenerList listenerList
TableColumnModelListener列表
-
changeEvent
protected transient ChangeEvent changeEvent
变更事件(只需要一个)
-
columnSelectionAllowed
protected boolean columnSelectionAllowed
此列模型中允许列选择
-
totalColumnWidth
protected int totalColumnWidth
所有列的组合宽度的本地缓存
-
-
方法详细信息
-
addColumn
public void addColumn(TableColumn aColumn)
将aColumn
追加到tableColumns
数组的末尾。 此方法还将columnAdded
事件发布到其侦听器。- Specified by:
-
addColumn
在界面TableColumnModel
- 参数
-
aColumn
- 要添加的TableColumn
- 异常
-
IllegalArgumentException
- 如果aColumn
是null
- 另请参见:
-
removeColumn(javax.swing.table.TableColumn)
-
removeColumn
public void removeColumn(TableColumn column)
删除column
从tableColumns
阵列。 如果column
不在表的列列表中,则此方法将不执行任何操作。tile
来调整标题和表视图的大小。 此方法还将columnRemoved
事件发布到其侦听器。- Specified by:
-
removeColumn
在界面TableColumnModel
- 参数
-
column
- 要删除的TableColumn
- 另请参见:
-
addColumn(javax.swing.table.TableColumn)
-
moveColumn
public void moveColumn(int columnIndex, int newIndex)
将列和标题移动到columnIndex
到newIndex
。 旧栏目columnIndex
现在位于newIndex
。 以前位于newIndex
的列向左或向右移动以腾出空间。 如果columnIndex
等于newIndex
则不会移动任何列。 此方法还将columnMoved
事件发布到其侦听器。- Specified by:
-
moveColumn
在界面TableColumnModel
- 参数
-
columnIndex
- 要移动的列的索引 -
newIndex
- 移动列的新索引 - 异常
-
IllegalArgumentException
- 如果column
或newIndex
不在有效范围内
-
setColumnMargin
public void setColumnMargin(int newMargin)
将列边距设置为newMargin
。 此方法还将columnMarginChanged
事件发布到其侦听器。- Specified by:
-
setColumnMargin
在界面TableColumnModel
- 参数
-
newMargin
- 新的边距宽度(以像素为单位) - 另请参见:
-
getColumnMargin()
,getTotalColumnWidth()
-
getColumnCount
public int getColumnCount()
返回tableColumns
数组中的列数。- Specified by:
-
getColumnCount
,界面TableColumnModel
- 结果
-
tableColumns
数组中的列数 - 另请参见:
-
getColumns()
-
getColumns
public Enumeration<TableColumn> getColumns()
返回Enumeration
中所有列的Enumeration
。- Specified by:
-
getColumns
,界面TableColumnModel
- 结果
-
模型中的
Enumeration
列
-
getColumnIndex
public int getColumnIndex(Object identifier)
返回tableColumns
数组中第一列的索引,其标识符等于identifier
,使用equals
进行比较时。- Specified by:
-
getColumnIndex
在界面TableColumnModel
- 参数
-
identifier
- 标识符对象 - 结果
-
tableColumns
数组中第一列的索引,其标识符等于identifier
- 异常
-
IllegalArgumentException
- 如果identifier
是null
,或者没有TableColumn
这个identifier
- 另请参见:
-
getColumn(int)
-
getColumn
public TableColumn getColumn(int columnIndex)
返回列的TableColumn
对象columnIndex
。- Specified by:
-
getColumn
在界面TableColumnModel
- 参数
-
columnIndex
- 所需列的索引 - 结果
-
该列的
TableColumn
对象为columnIndex
-
getColumnMargin
public int getColumnMargin()
返回TableColumn
的宽度边距。 默认值columnMargin
为1。- Specified by:
-
getColumnMargin
在界面TableColumnModel
- 结果
-
TableColumn
的最大宽度 - 另请参见:
-
setColumnMargin(int)
-
getColumnIndexAtX
public int getColumnIndexAtX(int x)
返回位于位置x
的列的索引,如果没有列覆盖此点,则返回-1。 为了与Swing的可分离模型架构保持一致,TableColumnModel不知道表列实际出现在屏幕上的方式。 列的可视化表示是使用此模型(通常是JTable)的视图/控制器对象的责任。 视图/控制器不需要从左到右依次显示列。 例如,可以从右到左显示列以适应区域设置首选项,或者可以根据用户的请求隐藏某些列。 由于模型不知道列在屏幕上的布局方式,因此不应将给定的xPosition
视为2D图形空间中的坐标。 相反,它应该被认为是模型中第一列开头的宽度。 如果需要2D空间中给定X坐标的列索引,JTable.columnAtPoint
可以使用JTable.columnAtPoint
。- Specified by:
-
getColumnIndexAtX
在界面TableColumnModel
- 参数
-
x
- 感兴趣的水平位置 - 结果
- 列的索引或-1,如果没有找到列
- 另请参见:
-
JTable.columnAtPoint(java.awt.Point)
-
getTotalColumnWidth
public int getTotalColumnWidth()
返回所有列的总组合宽度。- Specified by:
-
getTotalColumnWidth
在界面TableColumnModel
- 结果
-
totalColumnWidth
属性
-
setSelectionModel
public void setSelectionModel(ListSelectionModel newModel)
设置此选择模型TableColumnModel
至newModel
,并注册了来自新选择模型的通知。 如果newModel
是null
,则抛出异常。- Specified by:
-
setSelectionModel
在界面TableColumnModel
- 参数
-
newModel
- 新的选择模型 - 异常
-
IllegalArgumentException
- 如果newModel
是null
- 另请参见:
-
getSelectionModel()
-
getSelectionModel
public ListSelectionModel getSelectionModel()
返回用于维护列选择状态的ListSelectionModel
。- Specified by:
-
getSelectionModel
在界面TableColumnModel
- 结果
-
提供列选择状态的对象。
如果不允许行选择,则为
null
。 - 另请参见:
-
setSelectionModel(javax.swing.ListSelectionModel)
-
setColumnSelectionAllowed
public void setColumnSelectionAllowed(boolean flag)
设置是否允许列选择。 默认值为false。- Specified by:
-
setColumnSelectionAllowed
接口TableColumnModel
- 参数
-
flag
- 如果允许列选择,flag
true,否则为false - 另请参见:
-
TableColumnModel.getColumnSelectionAllowed()
-
getColumnSelectionAllowed
public boolean getColumnSelectionAllowed()
如果允许列选择,则返回true,否则返回false。 默认值为false。- Specified by:
-
getColumnSelectionAllowed
在界面TableColumnModel
- 结果
-
columnSelectionAllowed
属性 - 另请参见:
-
TableColumnModel.setColumnSelectionAllowed(boolean)
-
getSelectedColumns
public int[] getSelectedColumns()
返回所选列的数组。 如果selectionModel
是null
,则返回一个空数组。- Specified by:
-
getSelectedColumns
在界面TableColumnModel
- 结果
-
选定列数组或空数组(如果未选择任何内容或
selectionModel
为null
-
getSelectedColumnCount
public int getSelectedColumnCount()
返回选定的列数。- Specified by:
-
getSelectedColumnCount
接口TableColumnModel
- 结果
- 选择的列数
-
addColumnModelListener
public void addColumnModelListener(TableColumnModelListener x)
为表列模型事件添加侦听器。- Specified by:
-
addColumnModelListener
在界面TableColumnModel
- 参数
-
x
-TableColumnModelListener
对象
-
removeColumnModelListener
public void removeColumnModelListener(TableColumnModelListener x)
删除表列模型事件的侦听器。- Specified by:
-
removeColumnModelListener
接口TableColumnModel
- 参数
-
x
-TableColumnModelListener
对象
-
getColumnModelListeners
public TableColumnModelListener[] getColumnModelListeners()
返回在此模型上注册的所有列模型侦听器的数组。- 结果
-
所有这个默认表列模型的
ColumnModelListener
s,如果当前没有列模型侦听器,则为空数组 - 从以下版本开始:
- 1.4
- 另请参见:
-
addColumnModelListener(javax.swing.event.TableColumnModelListener)
,removeColumnModelListener(javax.swing.event.TableColumnModelListener)
-
fireColumnAdded
protected void fireColumnAdded(TableColumnModelEvent e)
通知所有已注册对此事件类型的通知感兴趣的听众。 使用传递给fire方法的参数延迟创建事件实例。- 参数
-
e
- 收到的活动 - 另请参见:
-
EventListenerList
-
fireColumnRemoved
protected void fireColumnRemoved(TableColumnModelEvent e)
通知所有已注册对此事件类型的通知感兴趣的听众。 使用传递给fire方法的参数延迟创建事件实例。- 参数
-
e
- 收到的活动 - 另请参见:
-
EventListenerList
-
fireColumnMoved
protected void fireColumnMoved(TableColumnModelEvent e)
通知所有已注册对此事件类型的通知感兴趣的听众。 使用传递给fire方法的参数延迟创建事件实例。- 参数
-
e
- 收到的活动 - 另请参见:
-
EventListenerList
-
fireColumnSelectionChanged
protected void fireColumnSelectionChanged(ListSelectionEvent e)
通知所有已注册对此事件类型的通知感兴趣的听众。 使用传递给fire方法的参数延迟创建事件实例。- 参数
-
e
- 收到的活动 - 另请参见:
-
EventListenerList
-
fireColumnMarginChanged
protected void fireColumnMarginChanged()
通知所有已注册对此事件类型的通知感兴趣的听众。 使用传递给fire方法的参数延迟创建事件实例。- 另请参见:
-
EventListenerList
-
getListeners
public <T extends EventListener> T[] getListeners(类<T> listenerType)
返回此模型上当前注册为FooListener
的所有对象的数组。FooListener
s使用addFooListener
方法注册。您可以使用类文字指定
listenerType
参数,例如FooListener.class
。 例如,您可以使用以下代码查询DefaultTableColumnModel
m
作为其列模型侦听器:ColumnModelListener[] cmls = (ColumnModelListener[])(m.getListeners(ColumnModelListener.class));
如果不存在此类侦听器,则此方法返回空数组。- 参数类型
-
T
- 侦听器类型 - 参数
-
listenerType
- 请求的侦听器类型 - 结果
-
此模型上注册为
FooListener
的所有对象的数组,如果未添加此类侦听器,则为空数组 - 异常
-
ClassCastException
- 如果listenerType
未指定实现java.util.EventListener
的类或接口 - 从以下版本开始:
- 1.3
- 另请参见:
-
getColumnModelListeners()
-
propertyChange
public void propertyChange(PropertyChangeEvent evt)
属性更改侦听器更改方法。 用于跟踪列宽或首选列宽的更改。- Specified by:
-
propertyChange
接口PropertyChangeListener
- 参数
-
evt
-PropertyChangeEvent
-
valueChanged
public void valueChanged(ListSelectionEvent e)
AListSelectionListener
在列选择更改时转发ListSelectionEvents
。- Specified by:
-
valueChanged
接口ListSelectionListener
- 参数
-
e
- 更改事件
-
createSelectionModel
protected ListSelectionModel createSelectionModel()
创建新的默认列表选择模型。- 结果
- 新创建的默认列表选择模型。
-
recalcWidthCache
protected void recalcWidthCache()
重新计算所有列的总组合宽度。 更新totalColumnWidth
属性。
-
-