JavaTM 2 Platform
Standard Ed. 5.0

javax.swing.table
类 TableColumn

java.lang.Object
  继承者 javax.swing.table.TableColumn
所有已实现的接口:
Serializable

public class TableColumn
extends Object
implements Serializable

TableColumn 表示 JTable 中列的所有属性,如宽度、大小可调整性、最小和最大宽度。此外,TableColumn 还为显示和编辑此列中值的渲染器和编辑器提供了位置。

还可以基于每种类型,而不是每列来指定渲染器和编辑器,请参阅 JTable 类中的 setDefaultRenderer 方法。此默认机制仅用于 TableColumn 中的渲染器(或编辑器)为 null 的情况。

TableColumn 存储 JTable 中各列与 TableModel 中各列之间的链接。modelIndexTableModel 中的列,要获得此列中单元格的数据值,可对 modelIndex 进行查询。在视图中移动列时,此 modelIndex 不更改。

注:某些实现可能假定所有 TableColumnModel 都是唯一的,因此我们建议不要多次将同一 TableColumn 实例添加到 TableColumnModel 中。要从模型中显示具有相同数据列的 TableColumn,可创建具有相同 modelIndex 的新实例。

警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前的序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder

另请参见:
TableColumnModel, DefaultTableColumnModel, JTableHeader.getDefaultRenderer(), JTable.getDefaultRenderer(Class), JTable.getDefaultEditor(Class), JTable.getCellRenderer(int, int), JTable.getCellEditor(int, int)

字段摘要
static String CELL_RENDERER_PROPERTY
          从 Java 2 platform v1.3 开始已过时。
protected  TableCellEditor cellEditor
          用于编辑列的数据单元格的编辑器。
protected  TableCellRenderer cellRenderer
          用于绘制列的数据单元格的渲染器。
static String COLUMN_WIDTH_PROPERTY
          从 Java 2 platform v1.3 开始已过时。
static String HEADER_RENDERER_PROPERTY
          从 Java 2 platform v1.3 开始已过时。
static String HEADER_VALUE_PROPERTY
          从 Java 2 platform v1.3 开始已过时。
protected  TableCellRenderer headerRenderer
          用于绘制列头的渲染器。
protected  Object headerValue
          列的头值。
protected  Object identifier
          根据 JTable 的绘制机制,此对象不会在内部使用;可在 TableColumn 中设置标识符,并将其作为标记和定位表列的可选方式。
protected  boolean isResizable
          如果为 true,则允许用户调整列的大小;默认值为 true。
protected  int maxWidth
          列的最大宽度。
protected  int minWidth
          列的最小宽度。
protected  int modelIndex
          模型中的列索引,通过此 TableColumn 显示该模型。
protected  int resizedPostingDisableCount
          已过时。 从 Java 2 platform v1.3 开始
protected  int width
          列的宽度。
 
构造方法摘要
TableColumn()
          覆盖方法,它使用的默认模型索引为 0、默认宽度为 75、渲染器为 null、编辑器为 null
TableColumn(int modelIndex)
          覆盖方法,它使用的默认宽度为 75、渲染器为 null、编辑器为 null
TableColumn(int modelIndex, int width)
          覆盖方法,它使用的渲染器为 null、编辑器为 null
TableColumn(int modelIndex, int width, TableCellRenderer cellRenderer, TableCellEditor cellEditor)
          创建并初始化具有 modelIndexTableColumn 实例。
 
方法摘要
 void addPropertyChangeListener(PropertyChangeListener listener)
          向侦听器列表中添加一个 PropertyChangeListener
protected  TableCellRenderer createDefaultHeaderRenderer()
          从 Java 2 platform v1.3 开始,TableColumn 构造方法不再调用此方法。
 void disableResizedPosting()
          已过时。 从 Java 2 platform v1.3 开始
 void enableResizedPosting()
          已过时。 从 Java 2 platform v1.3 开始
 TableCellEditor getCellEditor()
          返回 JTable 用于编辑此列各值的 TableCellEditor
 TableCellRenderer getCellRenderer()
          返回 JTable 用于绘制此列各值的 TableCellRenderer
 TableCellRenderer getHeaderRenderer()
          返回用于绘制 TableColumn 头的 TableCellRenderer
 Object getHeaderValue()
          返回用作头渲染器值的 Object
 Object getIdentifier()
          返回此列的 identifier 对象。
 int getMaxWidth()
          返回 TableColumn 的最大宽度。
 int getMinWidth()
          返回 TableColumn 的最小宽度。
 int getModelIndex()
          返回此列的模型索引。
 int getPreferredWidth()
          返回 TableColumn 的首选宽度。
 PropertyChangeListener[] getPropertyChangeListeners()
          返回使用 addPropertyChangeListener() 添加到此 TableColumn 的所有 PropertyChangeListener 组成的数组。
 boolean getResizable()
          如果允许用户调整 TableColumn 的宽度,则返回 true;否则返回 false。
 int getWidth()
          返回该 TableColumn 的宽度。
 void removePropertyChangeListener(PropertyChangeListener listener)
          从侦听器列表中移除一个 PropertyChangeListener
 void setCellEditor(TableCellEditor cellEditor)
          设置编辑此列中单元格时所用的编辑器。
 void setCellRenderer(TableCellRenderer cellRenderer)
          设置 JTable 用于绘制此列各值的 TableCellRenderer
 void setHeaderRenderer(TableCellRenderer headerRenderer)
          将用于绘制 TableColumn 的头的 TableCellRenderer 设置为 headerRenderer
 void setHeaderValue(Object headerValue)
          设置 Object,将使用其字符串表示形式作为 headerRenderer 的值。
 void setIdentifier(Object identifier)
          将 TableColumn 的标识符设置为 anIdentifier
 void setMaxWidth(int maxWidth)
          将 TableColumn 的最大宽度设置为 maxWidth;如果宽度和首选宽度大于此值,也对其进行调整。
 void setMinWidth(int minWidth)
          将 TableColumn 的最小宽度设置为 minWidth;如果当前宽度和首选宽度小于此值,也对其进行调整。
 void setModelIndex(int modelIndex)
          设置此列的模型索引。
 void setPreferredWidth(int preferredWidth)
          将此列的首选宽度设置为 preferredWidth
 void setResizable(boolean isResizable)
          设置是否可以调整此列的大小。
 void setWidth(int width)
          不应使用此方法来设置 JTable 中列的宽度,而应使用 setPreferredWidth
 void sizeWidthToFit()
          调整 TableColumn 的大小,以适合其头单元格的宽度。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

COLUMN_WIDTH_PROPERTY

public static final String COLUMN_WIDTH_PROPERTY
从 Java 2 platform v1.3 开始已过时。请使用 string 字面值来标识属性。

另请参见:
常量字段值

HEADER_VALUE_PROPERTY

public static final String HEADER_VALUE_PROPERTY
从 Java 2 platform v1.3 开始已过时。请使用 string 字面值来标识属性。

另请参见:
常量字段值

HEADER_RENDERER_PROPERTY

public static final String HEADER_RENDERER_PROPERTY
从 Java 2 platform v1.3 开始已过时。请使用 string 字面值来标识属性。

另请参见:
常量字段值

CELL_RENDERER_PROPERTY

public static final String CELL_RENDERER_PROPERTY
从 Java 2 platform v1.3 开始已过时。请使用 string 字面值来标识属性。

另请参见:
常量字段值

modelIndex

protected int modelIndex
模型中的列索引,通过此 TableColumn 显示该模型。在视图中移动列时,modelIndex 保持不变。


identifier

protected Object identifier
根据 JTable 的绘制机制,此对象不会在内部使用;可在 TableColumn 中设置标识符,并将其作为标记和定位表列的可选方式。table 包只修改或调用这些标识符对象中的 equals 方法,该方法用于 DefaultTableColumnModel 中的 getColumnIndex() 方法中。


width

protected int width
列的宽度。


minWidth

protected int minWidth
列的最小宽度。


maxWidth

protected int maxWidth
列的最大宽度。


headerRenderer

protected TableCellRenderer headerRenderer
用于绘制列头的渲染器。


headerValue

protected Object headerValue
列的头值。


cellRenderer

protected TableCellRenderer cellRenderer
用于绘制列的数据单元格的渲染器。


cellEditor

protected TableCellEditor cellEditor
用于编辑列的数据单元格的编辑器。


isResizable

protected boolean isResizable
如果为 true,则允许用户调整列的大小;默认值为 true。


resizedPostingDisableCount

@Deprecated
protected transient int resizedPostingDisableCount
已过时。 从 Java 2 platform v1.3 开始
在以前的版本中不使用此字段,并且当前也没有计划以后支持它。

构造方法详细信息

TableColumn

public TableColumn()
覆盖方法,它使用的默认模型索引为 0、默认宽度为 75、渲染器为 null、编辑器为 null。此方法用于进行序列化。

另请参见:
TableColumn(int, int, TableCellRenderer, TableCellEditor)

TableColumn

public TableColumn(int modelIndex)
覆盖方法,它使用的默认宽度为 75、渲染器为 null、编辑器为 null

另请参见:
TableColumn(int, int, TableCellRenderer, TableCellEditor)

TableColumn

public TableColumn(int modelIndex,
                   int width)
覆盖方法,它使用的渲染器为 null、编辑器为 null

另请参见:
TableColumn(int, int, TableCellRenderer, TableCellEditor)

TableColumn

public TableColumn(int modelIndex,
                   int width,
                   TableCellRenderer cellRenderer,
                   TableCellEditor cellEditor)
创建并初始化具有 modelIndexTableColumn 实例。所有 TableColumn 构造方法都委派给此方法。modelIndex 是模型中的列索引,该模型将为表中的此列提供数据。在视图中对列进行重排序时不更改 modelIndex。width 参数用于设置此列的 preferredWidth 和初始宽度。渲染器和编辑器是分别用于呈现和编辑此列中值的对象。当这些参数值为 null 时,使用 JTable 类中的 getDefaultRenderergetDefaultEditor 方法提供的默认值,并根据此列中数据的类型来提供默认的渲染器和编辑器。通过重写 JTable 中的 getCellRenderer 方法可回避这种以列为中心的呈现策略。

另请参见:
JTable.getDefaultRenderer(Class), JTable.getDefaultEditor(Class), JTable.getCellRenderer(int, int), JTable.getCellEditor(int, int)
方法详细信息

setModelIndex

public void setModelIndex(int modelIndex)
设置此列的模型索引。模型索引是模型中此 TableColumn 将要显示的列的索引。TableColumn 在视图中移动时,该模型索引保持不变。

参数:
modelIndex - 新的 modelIndex

getModelIndex

public int getModelIndex()
返回此列的模型索引。

返回:
modelIndex 属性

setIdentifier

public void setIdentifier(Object identifier)
TableColumn 的标识符设置为 anIdentifier

注:JTable 不使用标识符,它们只是为了便于外部标记和标识列的位置。

参数:
identifier - 此列的标识符
另请参见:
getIdentifier()

getIdentifier

public Object getIdentifier()
返回此列的 identifier 对象。注意,JTable 不使用标识符,它们只是为了便于外部使用。如果 identifiernull,则 getIdentifier() 返回 getHeaderValue 作为默认值。

返回:
identifier 属性
另请参见:
setIdentifier(java.lang.Object)

setHeaderValue

public void setHeaderValue(Object headerValue)
设置 Object,将使用其字符串表示形式作为 headerRenderer 的值。创建 TableColumn 时,默认的 headerValuenull

参数:
headerValue - 新的 headerValue
另请参见:
getHeaderValue()

getHeaderValue

public Object getHeaderValue()
返回用作头渲染器值的 Object

返回:
headerValue 属性
另请参见:
setHeaderValue(java.lang.Object)

setHeaderRenderer

public void setHeaderRenderer(TableCellRenderer headerRenderer)
将用于绘制 TableColumn 的头的 TableCellRenderer 设置为 headerRenderer

参数:
headerRenderer - 新的 headerRenderer
另请参见:
getHeaderRenderer()

getHeaderRenderer

public TableCellRenderer getHeaderRenderer()
返回用于绘制 TableColumn 头的 TableCellRendererheaderRenderernull 时,JTableHeader 使用其 defaultRendererheaderRenderer 的默认值为 null

返回:
headerRenderer 属性
另请参见:
setHeaderRenderer(javax.swing.table.TableCellRenderer), setHeaderValue(java.lang.Object), JTableHeader.getDefaultRenderer()

setCellRenderer

public void setCellRenderer(TableCellRenderer cellRenderer)
设置 JTable 用于绘制此列各值的 TableCellRenderer

参数:
cellRenderer - 新的 cellRenderer
另请参见:
getCellRenderer()

getCellRenderer

public TableCellRenderer getCellRenderer()
返回 JTable 用于绘制此列各值的 TableCellRenderer。列的 cellRenderer 不仅控制着该列的可视外观,而且还用于解释 TableModel 所提供的值对象。cellRenderernull 时,JTable 根据该列中单元格的类来使用默认的编辑器。cellRenderer 的默认值为 null

返回:
cellRenderer 属性
另请参见:
setCellRenderer(javax.swing.table.TableCellRenderer), JTable.setDefaultRenderer(java.lang.Class, javax.swing.table.TableCellRenderer)

setCellEditor

public void setCellEditor(TableCellEditor cellEditor)
设置编辑此列中单元格时所用的编辑器。

参数:
cellEditor - 新的 cellEditor
另请参见:
getCellEditor()

getCellEditor

public TableCellEditor getCellEditor()
返回 JTable 用于编辑此列各值的 TableCellEditorcellEditornull 时,JTable 根据该列中单元格的类来使用默认的渲染器。cellEditor 的默认值为 null

返回:
cellEditor 属性
另请参见:
setCellEditor(javax.swing.table.TableCellEditor), JTable.setDefaultEditor(java.lang.Class, javax.swing.table.TableCellEditor)

setWidth

public void setWidth(int width)
不应使用此方法来设置 JTable 中列的宽度,而应使用 setPreferredWidth。与 AWT 中的布局管理器类似,在表本身更改大小时,或者更改列的首选宽度时,JTable 会自动调整列的宽度。因此,以编程方式设置宽度没有长期的效果。

此方法将此列的宽度设置为 width。如果 width 超出最小或最大宽度,则将其调整为合适的界限值。

参数:
width - 新宽度
另请参见:
getWidth(), setMinWidth(int), setMaxWidth(int), setPreferredWidth(int), JTable.sizeColumnsToFit(int)

getWidth

public int getWidth()
返回该 TableColumn 的宽度。默认宽度为 75。

返回:
width 属性
另请参见:
setWidth(int)

setPreferredWidth

public void setPreferredWidth(int preferredWidth)
将此列的首选宽度设置为 preferredWidth。如果 preferredWidth 超出最小或最大宽度,则将其调整为合适的界限值。

有关如何根据 preferredWidth 计算 JTable(和 JTableHeader)中列宽度的细节,请参见 JTable 中的 doLayout 方法。

参数:
preferredWidth - 新的首选宽度
另请参见:
getPreferredWidth(), JTable.doLayout()

getPreferredWidth

public int getPreferredWidth()
返回 TableColumn 的首选宽度。默认首选宽度为 75。

返回:
preferredWidth 属性
另请参见:
setPreferredWidth(int)

setMinWidth

public void setMinWidth(int minWidth)
TableColumn 的最小宽度设置为 minWidth;如果当前宽度和首选宽度小于此值,也对其进行调整。

参数:
minWidth - 新的最小宽度
另请参见:
getMinWidth(), setPreferredWidth(int), setMaxWidth(int)

getMinWidth

public int getMinWidth()
返回 TableColumn 的最小宽度。不能通过用户或编程的方式将 TableColumn 的宽度设置为小于此值。默认的 minWidth 为 15。

返回:
minWidth 属性
另请参见:
setMinWidth(int)

setMaxWidth

public void setMaxWidth(int maxWidth)
TableColumn 的最大宽度设置为 maxWidth;如果宽度和首选宽度大于此值,也对其进行调整。

参数:
maxWidth - 新的最大宽度
另请参见:
getMaxWidth(), setPreferredWidth(int), setMinWidth(int)

getMaxWidth

public int getMaxWidth()
返回 TableColumn 的最大宽度。不能通过用户或编程的方式将 TableColumn 的宽度设置为大于此值。默认的 maxWidth 为 Integer.MAX_VALUE。

返回:
maxWidth 属性
另请参见:
setMaxWidth(int)

setResizable

public void setResizable(boolean isResizable)
设置是否可以调整此列的大小。

参数:
isResizable - 如果为 true,则允许调整大小;否则为 false
另请参见:
getResizable()

getResizable

public boolean getResizable()
如果允许用户调整 TableColumn 的宽度,则返回 true;否则返回 false。无论此设置是什么,都可以通过编程方式更改宽度。默认值为 true。

返回:
isResizable 属性
另请参见:
setResizable(boolean)

sizeWidthToFit

public void sizeWidthToFit()
调整 TableColumn 的大小,以适合其头单元格的宽度。如果头渲染器为 null(默认情况如此),则此方法不执行任何操作。否则,此方法将此列的最小、最大和首选宽度设置为头渲染器所传递的 Component 的最小、最大和首选大小。此 TableColumn 的瞬态 "width" 属性也设置为首选宽度。注意,table 包不会在内部使用此方法。

另请参见:
setPreferredWidth(int)

disableResizedPosting

@Deprecated
public void disableResizedPosting()
已过时。 从 Java 2 platform v1.3 开始

在以前的版本中不使用此字段,并且当前也没有计划以后支持它。


enableResizedPosting

@Deprecated
public void enableResizedPosting()
已过时。 从 Java 2 platform v1.3 开始

在以前的版本中不使用此字段,并且当前也没有计划以后支持它它。


addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
向侦听器列表中添加一个 PropertyChangeListener。该侦听器是为所有属性注册的。

响应对当前组件上 setFontsetBackgroundsetForeground 的显式调用时,将触发一个 PropertyChangeEvent。注意,如果当前组件将继承其容器的前景、背景或字体,则在响应所继承属性中的更改时不会触发任何事件。

参数:
listener - 要添加的侦听器

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener listener)
从侦听器列表中移除一个 PropertyChangeListener。所移除的 PropertyChangeListener 是为所有属性注册的。

参数:
listener - 要移除的侦听器

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners()
返回使用 addPropertyChangeListener() 添加到此 TableColumn 的所有 PropertyChangeListener 组成的数组。

返回:
添加的所有 PropertyChangeListener,如果没有添加侦听器,则返回一个空数组
从以下版本开始:
1.4

createDefaultHeaderRenderer

protected TableCellRenderer createDefaultHeaderRenderer()
从 Java 2 platform v1.3 开始,TableColumn 构造方法不再调用此方法。以前 TableColumn 使用此方法来创建默认的头渲染器。从 Java 2 platform v1.3 开始,默认的头渲染器为 nullJTableHeader 现在提供其自己的共享默认渲染器,就像 JTable 为其单元格渲染器所提供的。

返回:
默认的头渲染器
另请参见:
JTableHeader.createDefaultRenderer()

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策