JavaTM 2 Platform
Standard Ed. 6

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(Remote Method Invocation,远程方法调用)。从 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)
          使用指定的模型索引、宽度、单元格渲染器、单元格编辑器创建并初始化 TableColumn 实例;所有 TableColumn 构造方法都委托给此方法。
 
方法摘要
 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;如果 maxWidth 小于最小宽度,则设置为最小宽度。
 void setMinWidth(int minWidth)
          将 TableColumn 的最小宽度设置为 minWidth,如有必要,调整新的最小宽度以确保 0 <= minWidth <= maxWidth
 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)
使用指定的模型索引、宽度、单元格渲染器、单元格编辑器创建并初始化 TableColumn 实例;所有 TableColumn 构造方法都委托给此方法。width 的值用于初始宽度和首选宽度;如果 width 为负,则将它们设置为 0。将最小宽度设置为 15,如果初始宽度更小,则将最小宽度设置为初始宽度的值。

cellRenderercellEditor 参数为 null 时,由 JTablegetDefaultRenderergetDefaultEditor 方法提供的默认值分别用于根据此列中数据的类型来提供默认的渲染器和编辑器。通过重写 JTable 中的 getCellRenderer 方法可回避这种以列为中心的呈现策略。

参数:
modelIndex - 模型中列的索引,该模型提供表中此列的数据;即使列在视图中重新排序,该模型索引依然不变
width - 此列的首选宽度和初始宽度
cellRenderer - 用于呈现此列中值的对象
cellEditor - 用于编辑此列中值的对象
另请参见:
getMinWidth(), 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.doLayout()

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,如有必要,调整新的最小宽度以确保 0 <= minWidth <= maxWidth。例如,如果 minWidth 参数为负,则此方法将 minWidth 属性设置为 0。

如果 widthpreferredWidth 属性的值小于新的最小宽度,则此方法将该属性设置为新的最小宽度。

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

getMinWidth

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

返回:
minWidth 属性
另请参见:
setMinWidth(int), TableColumn(int, int, TableCellRenderer, TableCellEditor)

setMaxWidth

public void setMaxWidth(int maxWidth)
TableColumn 的最大宽度设置为 maxWidth;如果 maxWidth 小于最小宽度,则设置为最小宽度。

如果 widthpreferredWidth 属性的值大于新的最大宽度,则此方法将该属性设置为新的最大宽度。

参数:
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. 6

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

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