- 所有已实现的接口:
-
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
FieldsModifier 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
ConstructorsConstructorDescription覆盖方法,使用默认模型索引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。intgetWidth()返回TableColumn的宽度。void从监听器列表中删除PropertyChangeListener。voidsetCellEditor(TableCellEditor cellEditor) 设置用于编辑此列中单元格的编辑器。voidsetCellRenderer(TableCellRenderer cellRenderer) 设置JTable用于绘制此列的单个值的TableCellRenderer。voidsetHeaderRenderer(TableCellRenderer headerRenderer) 设置用于绘制TableColumn标题的TableCellRenderer为headerRenderer。voidsetHeaderValue(Object headerValue) 设置Object,其字符串表示将用作headerRenderer的值。voidsetIdentifier(Object identifier) 将TableColumn的标识符设置为anIdentifier。voidsetMaxWidth(int maxWidth) 将TableColumn的最大宽度设置为maxWidth,或者如果maxWidth小于最小宽度,则设置为最小宽度。voidsetMinWidth(int minWidth) 将TableColumn的最小宽度设置为minWidth,必要时调整新的最小宽度以确保0 <=minWidth<=maxWidth。voidsetModelIndex(int modelIndex) 设置此列的模型索引。voidsetPreferredWidth(int preferredWidth) 将此列的首选宽度设置为preferredWidth。voidsetResizable(boolean isResizable) 设置此列是否可以调整大小。voidsetWidth(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为其单元格渲染器所做的那样。- 返回:
- 默认的标题渲染器
- 另请参阅:
-