- 所有已实现的接口:
-
Serializable
TableColumn
表示JTable
中列的所有属性,如宽度、可调整大小、最小和最大宽度。此外,TableColumn
提供了用于显示和编辑此列中的值的渲染器和编辑器插槽。
还可以根据类型而不是列来指定渲染器和编辑器 - 请参阅JTable
类中的setDefaultRenderer
方法。仅当TableColumn
中的渲染器(或编辑器)为null
时,才使用此默认机制。
TableColumn
存储了JTable
中的列与TableModel
中的列之间的链接。 modelIndex
是TableModel
中的列,将为此列中的单元格的数据值进行查询。当列在视图中移动时,此modelIndex
不会改变。
注意: 一些实现可能假定所有的TableColumnModel
都是唯一的,因此我们建议不要将相同的TableColumn
实例添加多次到TableColumnModel
中。要显示来自模型的相同数据列的TableColumn
,请使用具有相同modelIndex
的新实例。
警告: 此类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将对所有JavaBeans的长期存储支持添加到java.beans
包中。请参见XMLEncoder
。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic 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
如果为true,则允许用户调整列的大小;默认为true。protected int
列的最大宽度。protected int
列的最小宽度。protected int
要由此TableColumn
显示的模型中的列的索引。protected int
已过时。从Java 2平台v1.3起protected int
列的宽度。 -
Constructor Summary
ConstructorDescription覆盖方法,使用默认模型索引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
构造函数都委托给此方法。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
向监听器列表中添加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
的首选宽度。返回添加到此TableColumn的所有PropertyChangeListener
的数组,使用addPropertyChangeListener()添加。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
的大小以适应其标题单元格的宽度。
-
Field Details
-
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
中设置为可选的方式来标记和定位表列。表包不会修改或调用这些标识符对象中的任何方法,除了equals
方法,该方法用于DefaultTableColumnModel
中的getColumnIndex()
方法。 -
width
protected int width列的宽度。 -
minWidth
protected int minWidth列的最小宽度。 -
maxWidth
protected int maxWidth列的最大宽度。 -
headerRenderer
用于绘制列的标题的渲染器。 -
headerValue
列的标题值。 -
cellRenderer
用于绘制列的数据单元格的渲染器。 -
cellEditor
用于编辑列的数据单元格的编辑器。 -
isResizable
protected boolean isResizable如果为true,则允许用户调整列的大小;默认为true。 -
resizedPostingDisableCount
Deprecated.as of Java 2 platform v1.3在以前的版本中未使用此字段,目前没有计划在未来支持它。
-
-
Constructor Details
-
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
- 用于编辑该列值的对象 - 参见:
-
-
Method Details
-
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) 设置将用作headerRenderer
值的Object
的字符串表示形式。当创建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
- 新的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
将TableColumn
的最小宽度设置为minWidth
,如果需要,调整新的最小宽度以确保0 <=minWidth
<=maxWidth
。例如,如果minWidth
参数为负数,则此方法将minWidth
属性设置为0。如果
width
或preferredWidth
属性的值小于新的最小宽度,则此方法将该属性设置为新的最小宽度。- 参数:
-
minWidth
- 新的最小宽度 - 另请参阅:
-
getMinWidth
public int getMinWidth()返回TableColumn
的最小宽度。无论是用户还是以编程方式,TableColumn
的宽度都不能小于此值。- 返回:
-
minWidth
属性 - 另请参阅:
-
setMaxWidth
将TableColumn
的最大宽度设置为maxWidth
,或者如果maxWidth
小于最小宽度,则设置为最小宽度。如果
width
或preferredWidth
属性的值大于新的最大宽度,则此方法将该属性设置为新的最大宽度。- 参数:
-
maxWidth
- 新的最大宽度 - 另请参阅:
-
getMaxWidth
public int getMaxWidth()返回TableColumn
的最大宽度。无论是用户还是以编程方式,TableColumn
的宽度都不能大于此值。默认的最大宽度为Integer.MAX_VALUE。- 返回:
-
maxWidth
属性 - 另请参阅:
-
setResizable
@BeanProperty(description="Whether or not this column can be resized.") public void setResizable(boolean isResizable) 设置此列是否可以调整大小。- 参数:
-
isResizable
- 如果为true,则允许调整大小;否则为false - 另请参阅:
-
getResizable
public boolean getResizable()如果允许用户调整TableColumn
的宽度,则返回true,否则返回false。无论此设置如何,都可以以编程方式更改宽度。默认值为true。- 返回:
-
isResizable
属性 - 另请参阅:
-
sizeWidthToFit
public void sizeWidthToFit()调整TableColumn
的大小以适应其标题单元格的宽度。如果标题渲染器为null
(默认情况),则此方法不执行任何操作。否则,它将此列的最小、最大和首选宽度设置为标题渲染器提供的组件的最小、最大和首选大小的宽度。此TableColumn的瞬态“width”属性也设置为首选宽度。请注意,此方法不会被表包内部使用。- 另请参阅:
-
disableResizedPosting
Deprecated.as of Java 2 platform v1.3在以前的版本中未使用此字段,目前也没有计划支持它。 -
enableResizedPosting
Deprecated.as of Java 2 platform v1.3在以前的版本中未使用此字段,目前也没有计划支持它。 -
addPropertyChangeListener
向监听器列表中添加一个PropertyChangeListener
。该监听器为此类的所有绑定属性注册。- 此TableColumn的modelIndex(“modelIndex”)
- 此TableColumn的标识符(“identifier”)
- 此TableColumn的标题值(“headerValue”)
- 此TableColumn的标题渲染器(“headerRenderer”)
- 此TableColumn的单元格渲染器(“cellRenderer”)
- 此TableColumn的单元格编辑器(“cellEditor”)
- 此TableColumn的宽度(“width”)
- 此TableColumn的首选宽度(“preferredWidth”)
- 此TableColumn的最小宽度(“minWidth”)
- 此TableColumn的最大宽度(“maxWidth”)
- 此TableColumn的可调整状态(“isResizable”)
- 参数:
-
listener
- 要添加的监听器 - 另请参阅:
-
removePropertyChangeListener
从监听器列表中移除一个PropertyChangeListener
。要移除的PropertyChangeListener
已注册为所有属性。- 参数:
-
listener
- 要移除的监听器
-
getPropertyChangeListeners
返回添加到此TableColumn的所有PropertyChangeListener
的数组。- 返回:
-
添加的所有
PropertyChangeListener
或如果未添加任何监听器则返回空数组 - 自:
- 1.4
-
createDefaultHeaderRenderer
从Java 2平台v1.3开始,此方法不会被TableColumn
构造函数调用。以前,此方法由TableColumn
用于创建默认的标题渲染器。从Java 2平台v1.3开始,默认的标题渲染器为null
。现在,JTableHeader
为其提供自己的共享默认渲染器,就像JTable
为其单元格渲染器所做的那样。- 返回:
- 默认的标题渲染器
- 另请参阅:
-