- 所有已实现的接口:
Serializable
TableColumn
表示 JTable
中列的所有属性,例如宽度、可调整大小、最小和最大宽度。此外,TableColumn
为渲染器和编辑器提供插槽,可用于显示和编辑此列中的值。
也可以按类型而不是按列指定渲染器和编辑器 - 请参阅 JTable
类中的 setDefaultRenderer
方法。此默认机制仅在 TableColumn
中的渲染器(或编辑器)为 null
时使用。
TableColumn
存储 JTable
中的列与 TableModel
中的列之间的链接。 modelIndex
是 TableModel
中的列,将查询此列中单元格的数据值。当列在视图中四处移动时,此 modelIndex
不会更改。
笔记:某些实现可能假设所有 TableColumnModel
都是唯一的,因此我们建议不要将同一个 TableColumn
实例多次添加到 TableColumnModel
中。要显示模型中具有相同数据列的 TableColumn
,请创建一个具有相同 modelIndex
的新实例。
Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans
包中。请参阅 XMLEncoder
。
- 参见:
-
字段摘要
字段修饰符和类型Field描述static final String
自 Java 2 平台 v1.3 起已过时。protected TableCellEditor
用于编辑列的数据单元格的编辑器。protected TableCellRenderer
用于绘制列的数据单元格的渲染器。static final String
自 Java 2 平台 v1.3 起已过时。static final String
自 Java 2 平台 v1.3 起已过时。static final String
自 Java 2 平台 v1.3 起已过时。protected TableCellRenderer
用于绘制列标题的渲染器。protected Object
列的标题值。protected Object
JTable
的绘图机器不在内部使用该对象;标识符可以在TableColumn
中设置为标记和定位表列的可选方式。protected boolean
如果为真,则允许用户调整列的大小;默认为真。protected int
列的最大宽度。protected int
列的最小宽度。protected int
模型中要由此TableColumn
显示的列的索引。protected int
已弃用。从 Java 2 平台 v1.3 开始protected int
列的宽度。 -
构造方法总结
构造方法构造方法描述覆盖方法,使用默认模型索引 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
将PropertyChangeListener
添加到监听器列表。protected TableCellRenderer
从 Java 2 平台 v1.3 开始,TableColumn
构造函数不调用此方法。void
已弃用。从 Java 2 平台 v1.3 开始void
已弃用。从 Java 2 平台 v1.3 开始返回JTable
使用的TableCellEditor
来编辑此列的值。返回JTable
用来为该列绘制值的TableCellRenderer
。返回用于绘制TableColumn
标题的TableCellRenderer
。返回用作标头渲染器值的Object
。返回此列的identifier
对象。int
返回TableColumn
的最大宽度。int
返回TableColumn
的最小宽度。int
返回此列的模型索引。int
返回TableColumn
的首选宽度。返回使用 addPropertyChangeListener() 添加到此 TableColumn 的所有PropertyChangeListener
的数组。boolean
如果允许用户调整TableColumn
的宽度,则返回 true,否则返回 false。int
getWidth()
返回TableColumn
的宽度。void
从监听器列表中删除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
调整TableColumn
的大小以适合其标题单元格的宽度。
-
字段详细信息
-
COLUMN_WIDTH_PROPERTY
自 Java 2 平台 v1.3 起已过时。请使用字符串文字来标识属性。- 参见:
-
HEADER_VALUE_PROPERTY
自 Java 2 平台 v1.3 起已过时。请使用字符串文字来标识属性。- 参见:
-
HEADER_RENDERER_PROPERTY
自 Java 2 平台 v1.3 起已过时。请使用字符串文字来标识属性。- 参见:
-
CELL_RENDERER_PROPERTY
自 Java 2 平台 v1.3 起已过时。请使用字符串文字来标识属性。- 参见:
-
modelIndex
protected int modelIndex模型中要由此TableColumn
显示的列的索引。随着列在视图中四处移动,modelIndex
保持不变。 -
identifier
JTable
的绘图机器不在内部使用该对象;标识符可以在TableColumn
中设置为标记和定位表列的可选方式。除了DefaultTableColumnModel
中的getColumnIndex()
方法中使用的equals
方法外,表包不会修改或调用这些标识符对象中的任何方法。 -
width
protected int width列的宽度。 -
minWidth
protected int minWidth列的最小宽度。 -
maxWidth
protected int maxWidth列的最大宽度。 -
headerRenderer
用于绘制列标题的渲染器。 -
headerValue
列的标题值。 -
cellRenderer
用于绘制列的数据单元格的渲染器。 -
cellEditor
用于编辑列的数据单元格的编辑器。 -
isResizable
protected boolean isResizable如果为真,则允许用户调整列的大小;默认为真。 -
resizedPostingDisableCount
已弃用。从 Java 2 平台 v1.3 开始此字段在以前的版本中未使用,目前没有计划在未来支持它。
-
-
构造方法详细信息
-
TableColumn
public TableColumn()覆盖方法,使用默认模型索引 0、默认宽度 75、null
渲染器和null
编辑器。此方法用于序列化。- 参见:
-
TableColumn
public TableColumn(int modelIndex) 覆盖方法,使用默认宽度 75,null
渲染器和null
编辑器。- 参数:
modelIndex
- 为表中的该列提供数据的模型中列的索引;即使在视图中对列重新排序,模型索引也保持不变- 参见:
-
TableColumn
public TableColumn(int modelIndex, int width) 覆盖方法,使用null
渲染器和null
编辑器。- 参数:
modelIndex
- 为表中的该列提供数据的模型中列的索引;即使在视图中对列重新排序,模型索引也保持不变width
- 此列的首选宽度和初始宽度- 参见:
-
TableColumn
public TableColumn(int modelIndex, int width, TableCellRenderer cellRenderer, TableCellEditor cellEditor) 使用指定的模型索引、宽度、单元格渲染器和单元格编辑器创建并初始化TableColumn
的实例;所有TableColumn
构造函数委托给这个。width
的值用于初始宽度和首选宽度;如果width
为负,则它们设置为 0。最小宽度设置为 15,除非初始宽度更小,在这种情况下,最小宽度设置为初始宽度。当
cellRenderer
或cellEditor
参数为null
时,JTable
getDefaultRenderer
或getDefaultEditor
方法提供的默认值分别用于根据该列中的数据类型提供默认值。可以通过覆盖JTable
中的getCellRenderer
方法来规避这种以列为中心的渲染策略。- 参数:
modelIndex
- 为表中的该列提供数据的模型中列的索引;即使在视图中对列重新排序,模型索引也保持不变width
- 此列的首选宽度和初始宽度cellRenderer
- 用于呈现此列中的值的对象cellEditor
- 用于编辑此列中的值的对象- 参见:
-
-
方法详情
-
setModelIndex
设置此列的模型索引。模型索引是模型中将由此TableColumn
显示的列的索引。随着TableColumn
在视图中四处移动,模型索引保持不变。- 参数:
modelIndex
- 新模型索引
-
getModelIndex
public int getModelIndex()返回此列的模型索引。- 返回:
modelIndex
属性
-
setIdentifier
@BeanProperty (description ="A unique identifier for this column.") public void setIdentifier(Object identifier) 将TableColumn
的标识符设置为anIdentifier
。注意:
JTable
不使用标识符,它们纯粹是为了方便外部标记和列的位置。- 参数:
identifier
- 此列的标识符- 参见:
-
getIdentifier
返回此列的identifier
对象。注意JTable
不使用标识符,它们纯粹是为了方便外部使用。如果identifier
是null
,则getIdentifier()
返回getHeaderValue
作为默认值。- 返回:
identifier
属性- 参见:
-
setHeaderValue
@BeanProperty (description ="The text to be used by the header renderer.") public void setHeaderValue(Object headerValue) 设置Object
,其字符串表示形式将用作headerRenderer
的值。创建TableColumn
时,默认的headerValue
为null
。- 参数:
headerValue
- 新的 headerValue- 参见:
-
getHeaderValue
返回用作标头渲染器值的Object
。- 返回:
headerValue
属性- 参见:
-
setHeaderRenderer
@BeanProperty (description ="The header renderer.") public void setHeaderRenderer(TableCellRenderer headerRenderer) 将用于绘制TableColumn
的标头的TableCellRenderer
设置为headerRenderer
。渲染排序指示器是标题渲染器的责任。如果您正在使用排序并指定渲染器,您的渲染器必须渲染排序指示。
- 参数:
headerRenderer
- 新的 headerRenderer- 参见:
-
getHeaderRenderer
返回用于绘制TableColumn
标题的TableCellRenderer
。当headerRenderer
为null
时,JTableHeader
使用其defaultRenderer
。headerRenderer
的默认值为null
。- 返回:
headerRenderer
属性- 参见:
-
setCellRenderer
@BeanProperty (description ="The renderer to use for cell values.") public void setCellRenderer(TableCellRenderer cellRenderer) 设置JTable
使用的TableCellRenderer
为该列绘制单独的值。- 参数:
cellRenderer
- 新的 cellRenderer- 参见:
-
getCellRenderer
返回JTable
用来为该列绘制值的TableCellRenderer
。列的cellRenderer
不仅控制列的视觉外观,还用于解释TableModel
提供的值对象。当cellRenderer
为null
时,JTable
使用基于该列中单元格类的默认渲染器。cellRenderer
的默认值为null
。- 返回:
cellRenderer
属性- 参见:
-
setCellEditor
@BeanProperty (description ="The editor to use for cell values.") public void setCellEditor(TableCellEditor cellEditor) 将编辑器设置为在编辑此列中的单元格时使用。- 参数:
cellEditor
- 新的单元格编辑器- 参见:
-
getCellEditor
返回JTable
使用的TableCellEditor
来编辑此列的值。当cellEditor
为null
时,JTable
使用基于该列中单元格类别的默认编辑器。cellEditor
的默认值为null
。- 返回:
cellEditor
属性- 参见:
-
setWidth
此方法不应用于设置JTable
中列的宽度,请改用setPreferredWidth
。就像 AWT 中的布局管理器一样,每当表格本身更改大小时,或者列的首选宽度发生更改时,JTable
都会自动调整列的宽度。因此,以编程方式设置宽度不会产生长期影响。此方法将此列的宽度设置为
width
。如果width
超过最小或最大宽度,则将其调整为适当的限制值。- 参数:
width
- 新宽度- 参见:
-
getWidth
public int getWidth()返回TableColumn
的宽度。默认宽度为 75。- 返回:
width
属性- 参见:
-
setPreferredWidth
@BeanProperty (description ="The preferred width of the column.") public void setPreferredWidth(int preferredWidth) 将此列的首选宽度设置为preferredWidth
。如果preferredWidth
超过最小或最大宽度,则将其调整为适当的限制值。有关如何根据
preferredWidth
计算JTable
(和JTableHeader
)中的列宽的详细信息,请参阅JTable
中的doLayout
方法。- 参数:
preferredWidth
- 新的首选宽度- 参见:
-
getPreferredWidth
public int getPreferredWidth()返回TableColumn
的首选宽度。默认首选宽度为 75。- 返回:
preferredWidth
属性- 参见:
-
setMinWidth
@BeanProperty (description ="The minimum width of the column.") public void setMinWidth(int minWidth) 将TableColumn
的最小宽度设置为minWidth
,必要时调整新的最小宽度以确保 0 <=minWidth
<=maxWidth
。例如,如果minWidth
参数为负,则此方法将minWidth
属性设置为 0。如果
width
或preferredWidth
属性的值小于新的最小宽度,则此方法将该属性设置为新的最小宽度。- 参数:
minWidth
- 新的最小宽度- 参见:
-
getMinWidth
public int getMinWidth()返回TableColumn
的最小宽度。TableColumn
的宽度不能由用户或以编程方式小于此值。- 返回:
minWidth
属性- 参见:
-
setMaxWidth
@BeanProperty (description ="The maximum width of the column.") public void setMaxWidth(int maxWidth) 将TableColumn
的最大宽度设置为maxWidth
或者,如果maxWidth
小于最小宽度,则设置为最小宽度。如果
width
或preferredWidth
属性的值大于新的最大宽度,则此方法将该属性设置为新的最大宽度。- 参数:
maxWidth
- 新的最大宽度- 参见:
-
getMaxWidth
public int getMaxWidth()返回TableColumn
的最大宽度。TableColumn
的宽度不能由用户或以编程方式设置得大于此宽度。默认的 maxWidth 是 Integer.MAX_VALUE。- 返回:
maxWidth
属性- 参见:
-
setResizable
@BeanProperty (description ="Whether or not this column can be resized.") public void setResizable(boolean isResizable) 设置此列是否可以调整大小。- 参数:
isResizable
- 如果为真,则允许调整大小;否则为假- 参见:
-
getResizable
public boolean getResizable()如果允许用户调整TableColumn
的宽度,则返回 true,否则返回 false。无论此设置如何,您都可以通过编程方式更改宽度。默认为真。- 返回:
isResizable
属性- 参见:
-
sizeWidthToFit
public void sizeWidthToFit()调整TableColumn
的大小以适合其标题单元格的宽度。如果标头渲染器为null
(默认情况),则此方法不执行任何操作。否则,它将此列的最小、最大和首选宽度设置为标题渲染器提供的组件的最小、最大和首选大小的宽度。此 TableColumn 的瞬态“宽度”属性也设置为首选宽度。请注意,表包内部不使用此方法。- 参见:
-
disableResizedPosting
已弃用。从 Java 2 平台 v1.3 开始此字段在以前的版本中未使用,目前没有计划在未来支持它。 -
enableResizedPosting
已弃用。从 Java 2 平台 v1.3 开始此字段在以前的版本中未使用,目前没有计划在未来支持它。 -
addPropertyChangeListener
将PropertyChangeListener
添加到监听器列表。监听器已为此类的所有绑定属性注册,包括以下内容:- 此 TableColumn 的 modelIndex ("modelIndex")
- 此 TableColumn 的标识符(“标识符”)
- 此 TableColumn 的标头值(“headerValue”)
- 此 TableColumn 的标题渲染器(“headerRenderer”)
- 此 TableColumn 的单元格渲染器(“cellRenderer”)
- 此 TableColumn 的单元格编辑器(“cellEditor”)
- 此 TableColumn 的宽度(“宽度”)
- 此 TableColumn 的首选宽度(“preferredWidth”)
- 此 TableColumn 的最小宽度(“minWidth”)
- 此 TableColumn 的最大宽度(“maxWidth”)
- 此 TableColumn 的可调整大小状态(“isResizable”)
- 参数:
listener
- 要添加的监听器- 参见:
-
removePropertyChangeListener
从监听器列表中删除PropertyChangeListener
。要删除的PropertyChangeListener
已注册所有属性。- 参数:
listener
- 要删除的监听器
-
getPropertyChangeListeners
返回使用 addPropertyChangeListener() 添加到此 TableColumn 的所有PropertyChangeListener
的数组。- 返回:
-
添加所有
PropertyChangeListener
或如果未添加任何监听器,则为空数组 - 自从:
- 1.4
-
createDefaultHeaderRenderer
从 Java 2 平台 v1.3 开始,TableColumn
构造函数不调用此方法。以前,TableColumn
使用此方法来创建默认标题渲染器。从 Java 2 平台 v1.3 开始,默认的标头渲染器是null
。JTableHeader
现在提供自己的共享默认渲染器,就像JTable
为其单元格渲染器所做的那样。- 返回:
- 默认标题渲染器
- 参见:
-