- java.lang.Object
-
- javax.swing.table.TableColumn
-
- All Implemented Interfaces:
-
Serializable
public class TableColumn extends Object implements Serializable
甲TableColumn表示在所述列的所有属性JTable,诸如宽度,可调整大小,最小和最大宽度。 此外,TableColumn还提供了可用于显示和编辑此列中的值的渲染器和编辑器的插槽。也可以以每种类型为基础指定渲染器和编辑器,而不是每列 - 参见
JTable类中的setDefaultRenderer方法。 此默认机制仅在TableColumn的渲染器(或编辑器)为null。该
TableColumn存储在列之间的链接JTable中,列TableModel。 该modelIndex是在列TableModel,这将被查询用于该列中的单元中的数据值。 随着列在视图中移动,这个modelIndex不会改变。注意:有些实现可能假定所有
TableColumnModel都是唯一的,因此我们建议将TableColumn实例不要多次添加到TableColumnModel。 为了显示TableColumns的数据从模型中的同一列,创建具有相同的新实例modelIndex。警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已被添加到
java.beans软件包中。 请参阅XMLEncoder。
-
-
Field Summary
Fields Modifier and Type Field 描述 static StringCELL_RENDERER_PROPERTY作为Java 2平台v1.3的过时。protected TableCellEditorcellEditor编辑器用于编辑列的数据单元格。protected TableCellRenderercellRenderer渲染器用于绘制列的数据单元格。static StringCOLUMN_WIDTH_PROPERTY作为Java 2平台v1.3的过时。static StringHEADER_RENDERER_PROPERTY作为Java 2平台v1.3的过时。static StringHEADER_VALUE_PROPERTY作为Java 2平台v1.3的过时。protected TableCellRendererheaderRenderer渲染器用于绘制列的标题。protected ObjectheaderValue列的标题值。protected Objectidentifier这个对象不是由JTable的绘图机械内部使用; 可以在TableColumn设置标识符,作为标记和查找表列的可选方法。protected booleanisResizable如果为true,则允许用户调整列的大小; 默认值为true。protected intmaxWidth列的最大宽度。protected intminWidth列的最小宽度。protected intmodelIndex该模型中由该TableColumn显示的列的索引。protected intresizedPostingDisableCount已过时。从Java 2平台v1.3开始protected intwidth列的宽度。
-
构造方法摘要
构造方法 Constructor 描述 TableColumn()Cover方法,使用默认模型索引为0,默认宽度为75,一个null渲染器和一个null编辑器。TableColumn(int modelIndex)Cover方法,使用默认宽度为75,一个null渲染器和一个null编辑器。TableColumn(int modelIndex, int width)封面方法,使用null渲染器和一个null编辑器。TableColumn(int modelIndex, int width, TableCellRenderer cellRenderer, TableCellEditor cellEditor)使用指定的模型索引,宽度,单元格渲染器和单元格编辑器创建和初始化TableColumn的实例; 所有TableColumn构造函数都委托给这个。
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 voidaddPropertyChangeListener(PropertyChangeListener listener)添加一个PropertyChangeListener到监听器列表。protected TableCellRenderercreateDefaultHeaderRenderer()从Java 2平台v1.3开始,此方法不是由TableColumn构造函数调用的。voiddisableResizedPosting()已过时。从Java 2平台v1.3开始voidenableResizedPosting()已过时。从Java 2平台v1.3开始TableCellEditorgetCellEditor()返回TableCellEditor用于编辑此列的值的JTable。TableCellRenderergetCellRenderer()返回TableCellRenderer用于绘制此列的值的JTable。TableCellRenderergetHeaderRenderer()返回TableCellRenderer用于绘制标题的TableColumn。ObjectgetHeaderValue()返回用作标题渲染器的值的Object。ObjectgetIdentifier()返回此列的identifier对象。intgetMaxWidth()返回TableColumn的最大宽度。intgetMinWidth()返回TableColumn的最小宽度。intgetModelIndex()返回此列的模型索引。intgetPreferredWidth()返回TableColumn的首选宽度。PropertyChangeListener[]getPropertyChangeListeners()返回使用addPropertyChangeListener()添加到此TableColumn的所有PropertyChangeListener的数组。booleangetResizable()如果允许用户调整TableColumn的宽度,返回true,否则返回false。intgetWidth()返回TableColumn的宽度。voidremovePropertyChangeListener(PropertyChangeListener listener)从侦听器列表中删除PropertyChangeListener。voidsetCellEditor(TableCellEditor cellEditor)设置编辑此列中的单元格时使用的编辑器。voidsetCellRenderer(TableCellRenderer cellRenderer)设置由TableCellRenderer使用的JTable绘制此列的各个值。voidsetHeaderRenderer(TableCellRenderer headerRenderer)设置TableCellRenderer用于绘制TableColumn的标题为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)新新preferredWidthvoidsetResizable(boolean isResizable)设置是否可以调整此列的大小。voidsetWidth(int width)该方法不应该用于设置JTable的列的宽度,而是使用setPreferredWidth。voidsizeWidthToFit()调整TableColumn以适应其标题单元格的宽度。
-
-
-
字段详细信息
-
COLUMN_WIDTH_PROPERTY
public static final String COLUMN_WIDTH_PROPERTY
作为Java 2平台v1.3的过时。 请使用字符串文字来标识属性。- 另请参见:
- Constant Field Values
-
HEADER_VALUE_PROPERTY
public static final String HEADER_VALUE_PROPERTY
作为Java 2平台v1.3的过时。 请使用字符串文字来标识属性。- 另请参见:
- Constant Field Values
-
HEADER_RENDERER_PROPERTY
public static final String HEADER_RENDERER_PROPERTY
作为Java 2平台v1.3的过时。 请使用字符串文字来标识属性。- 另请参见:
- Constant Field Values
-
CELL_RENDERER_PROPERTY
public static final String CELL_RENDERER_PROPERTY
作为Java 2平台v1.3的过时。 请使用字符串文字来标识属性。- 另请参见:
- Constant Field Values
-
modelIndex
protected int modelIndex
模型中由该TableColumn显示的列的索引。 由于列在视图中移动modelIndex保持不变。
-
identifier
protected Object identifier
这个对象不是由内部的绘图机器使用的JTable; 可以在TableColumn设置标识符,作为标记和查找表列的可选方法。 表的包不修改或调用在比其它这些标识符的对象的任何方法equals其在所使用的方法getColumnIndex()在该方法中DefaultTableColumnModel。
-
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平台v1.3开始这个领域在以前的版本中没有被使用,目前还没有计划支持它。
-
-
构造方法详细信息
-
TableColumn
public TableColumn()
Cover方法,使用默认模型索引为0,默认宽度为75,一个null渲染器和一个null编辑器。 此方法用于序列化。
-
TableColumn
public TableColumn(int modelIndex)
Cover方法,使用默认宽度为75,一个null渲染器和一个null编辑器。- 参数
-
modelIndex- 提供表中此列的数据的模型中的列的索引; 即使列在视图中重新排序,模型索引仍保持不变 - 另请参见:
-
TableColumn(int, int, TableCellRenderer, TableCellEditor)
-
TableColumn
public TableColumn(int modelIndex, int width)封面方法,使用null渲染器和一个null编辑器。- 参数
-
modelIndex- 提供表中此列的数据的模型中的列的索引; 即使列在视图中重新排序,模型索引仍保持不变 -
width- 此列的首选宽度和初始宽度 - 另请参见:
-
TableColumn(int, int, TableCellRenderer, TableCellEditor)
-
TableColumn
public TableColumn(int modelIndex, int width, TableCellRenderer cellRenderer, TableCellEditor cellEditor)使用指定的模型索引,宽度,单元格渲染器和单元格编辑器创建和初始化一个TableColumn的实例; 所有的TableColumn构造函数都委托给这个。width的值用于初始宽度和首选宽度; 如果width为负,它们将设置为0.最小宽度设置为15,除非初始宽度较小,在这种情况下,最小宽度设置为初始宽度。当
cellRenderer或cellEditor参数为null,分别由JTablegetDefaultRenderer或getDefaultEditor方法提供的默认值用于根据此列中的数据类型提供默认值。 本栏目为中心的渲染策略可以通过重写来规避getCellRenderer的方法JTable。- 参数
-
modelIndex- 提供表中此列的数据的模型中的列的索引; 即使列在视图中重新排序,模型索引仍保持不变 -
width- 此列的首选宽度和初始宽度 -
cellRenderer- 用于在此列中呈现值的对象 -
cellEditor- 用于编辑此列中的值的对象 - 另请参见:
-
getMinWidth(),JTable.getDefaultRenderer(Class),JTable.getDefaultEditor(Class),JTable.getCellRenderer(int, int),JTable.getCellEditor(int, int)
-
-
方法详细信息
-
setModelIndex
@BeanProperty(description="The model index.") public void setModelIndex(int modelIndex)
设置此列的模型索引。 模型索引是模型中由该TableColumn显示的列的索引。 由于TableColumn在视图中移动,模型索引保持不变。- 参数
-
modelIndex- 新的modelIndex
-
getModelIndex
public int getModelIndex()
返回此列的模型索引。- 结果
-
modelIndex属性
-
setIdentifier
@BeanProperty(description="A unique identifier for this column.") public void setIdentifier(Object identifier)
将TableColumn的标识符设置为anIdentifier。注意:
JTable不使用JTable,它们纯粹是为了方便外部标记和列的位置。- 参数
-
identifier- 此列的标识符 - 另请参见:
-
getIdentifier()
-
getIdentifier
public Object getIdentifier()
返回此列的identifier对象。JTable不使用注释标识符,它们纯粹是外部使用的便利。 如果identifier为null,getIdentifier()回报getHeaderValue作为默认值。- 结果
-
identifier属性 - 另请参见:
-
setIdentifier(java.lang.Object)
-
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()
-
getHeaderValue
public Object getHeaderValue()
返回用作标题渲染器的值的Object。- 结果
-
headerValue财产 - 另请参见:
-
setHeaderValue(java.lang.Object)
-
setHeaderRenderer
@BeanProperty(description="The header renderer.") public void setHeaderRenderer(TableCellRenderer headerRenderer)
设置TableCellRenderer用于绘制TableColumn的标题为headerRenderer。标题渲染器有责任提交排序指示器。 如果您正在使用排序并指定渲染器,则您的渲染器必须呈现排序指示。
- 参数
-
headerRenderer- 新的headerRenderer - 另请参见:
-
getHeaderRenderer()
-
getHeaderRenderer
public TableCellRenderer getHeaderRenderer()
返回TableCellRenderer用于绘制的头TableColumn。 当headerRenderer为null,JTableHeader使用其defaultRenderer。headerRenderer的默认值为null。- 结果
-
headerRenderer财产 - 另请参见:
-
setHeaderRenderer(javax.swing.table.TableCellRenderer),setHeaderValue(java.lang.Object),JTableHeader.getDefaultRenderer()
-
setCellRenderer
@BeanProperty(description="The renderer to use for cell values.") public void setCellRenderer(TableCellRenderer cellRenderer)
设置TableCellRenderer用于绘制此列的各个值的JTable。- 参数
-
cellRenderer- 新的cellRenderer - 另请参见:
-
getCellRenderer()
-
getCellRenderer
public TableCellRenderer getCellRenderer()
返回TableCellRenderer用于绘制此列的值的JTable。 该列的cellRenderer不仅控制列的视觉外观,还用于解释由TableModel提供的值对象。 当cellRenderer为null,JTable使用基于该列中单元格类的默认渲染器。cellRenderer的默认值为null。
-
setCellEditor
@BeanProperty(description="The editor to use for cell values.") public void setCellEditor(TableCellEditor cellEditor)
设置编辑此列中的单元格时使用的编辑器。- 参数
-
cellEditor- 新的cellEditor - 另请参见:
-
getCellEditor()
-
getCellEditor
public TableCellEditor getCellEditor()
返回由TableCellEditor用于编辑此列的值的JTable。 当cellEditor是null,JTable使用基于该列中单元格类的默认编辑器。cellEditor的默认值为null。
-
setWidth
@BeanProperty(description="The width of the column.") 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
@BeanProperty(description="The preferred width of the column.") public void setPreferredWidth(int preferredWidth)
将此列的首选宽度设置为preferredWidth。 如果preferredWidth超过最小或最大宽度,则将其调整到适当的极限值。有关如何列在宽度细节
JTable(和JTableHeader)从所计算的preferredWidth,请参阅doLayout在方法JTable。- 参数
-
preferredWidth- 新的首选宽度 - 另请参见:
-
getPreferredWidth(),JTable.doLayout()
-
getPreferredWidth
public int getPreferredWidth()
返回TableColumn的首选宽度。 默认首选宽度为75。- 结果
-
preferredWidth属性 - 另请参见:
-
setPreferredWidth(int)
-
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(),setPreferredWidth(int),setMaxWidth(int)
-
getMinWidth
public int getMinWidth()
返回TableColumn的最小宽度。TableColumn的宽度不能由用户或编程方式制作。- 结果
-
minWidth财产 - 另请参见:
-
setMinWidth(int),TableColumn(int, int, TableCellRenderer, TableCellEditor)
-
setMaxWidth
@BeanProperty(description="The maximum width of the column.") public void setMaxWidth(int maxWidth)
将TableColumn的最大宽度设置为maxWidth或者如果maxWidth小于最小宽度,则设置为最小宽度。如果
width或preferredWidth属性的值大于新的最大宽度,则此方法将该属性设置为新的最大宽度。- 参数
-
maxWidth- 新的最大宽度 - 另请参见:
-
getMaxWidth(),setPreferredWidth(int),setMinWidth(int)
-
getMaxWidth
public int getMaxWidth()
返回TableColumn的最大宽度。TableColumn的宽度不能由用户或编程方式大于此宽度。 默认的maxWidth是Integer.MAX_VALUE。- 结果
-
maxWidth属性 - 另请参见:
-
setMaxWidth(int)
-
setResizable
@BeanProperty(description="Whether or not this column can be resized.") public void setResizable(boolean isResizable)
设置是否可以调整此列的大小。- 参数
-
isResizable- 如果为true,则允许调整大小; 否则为虚假 - 另请参见:
-
getResizable()
-
getResizable
public boolean getResizable()
如果允许用户调整TableColumn的宽度大小,则返回true,否则返回false。 无论此设置如何,都可以以编程方式更改宽度。 默认值为true。- 结果
-
isResizable财产 - 另请参见:
-
setResizable(boolean)
-
sizeWidthToFit
public void sizeWidthToFit()
调整TableColumn以适应其标题单元格的宽度。 如果头渲染器为null(默认情况),此方法不执行任何操作。 否则,它将该列的最小值,最大值和优选宽度设置为标题渲染器传递的组件的最小值,最大值和优选大小的宽度。 此TableColumn的瞬态“width”属性也设置为首选宽度。 请注意,此方法不在表包内部使用。- 另请参见:
-
setPreferredWidth(int)
-
disableResizedPosting
@Deprecated public void disableResizedPosting()
已过时。 从Java 2平台v1.3开始这个领域在以前的版本中没有被使用,目前还没有计划支持它。
-
enableResizedPosting
@Deprecated public void enableResizedPosting()
已过时。 从Java 2平台v1.3开始这个领域在以前的版本中没有被使用,目前还没有计划支持它。
-
addPropertyChangeListener
public void addPropertyChangeListener(PropertyChangeListener listener)
添加一个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)
-
removePropertyChangeListener
public void removePropertyChangeListener(PropertyChangeListener listener)
从侦听器列表中移除PropertyChangeListener。 要删除的PropertyChangeListener已注册所有财产。- 参数
-
listener- 要删除的侦听器
-
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners()
返回使用addPropertyChangeListener()添加到此TableColumn的所有PropertyChangeListener的数组。- 结果
-
如果没有添加任何侦听器,则添加所有
PropertyChangeListeners或一个空数组 - 从以下版本开始:
- 1.4
-
createDefaultHeaderRenderer
protected TableCellRenderer createDefaultHeaderRenderer()
从Java 2平台v1.3开始,此方法不是由TableColumn构造函数调用的。 以前这个方法被TableColumn用来创建一个默认的头渲染器。 从Java 2平台v1.3开始,默认头渲染器为null。JTableHeader现在提供了自己的共享默认渲染器,就像JTable它的单元格渲染器一样。- 结果
- 默认头渲染器
- 另请参见:
-
JTableHeader.createDefaultRenderer()
-
-