- 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
。 为了显示TableColumn
s的数据从模型中的同一列,创建具有相同的新实例modelIndex
。警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已被添加到
java.beans
软件包中。 请参阅XMLEncoder
。
-
-
Field Summary
Fields Modifier and Type Field 描述 static String
CELL_RENDERER_PROPERTY
作为Java 2平台v1.3的过时。protected TableCellEditor
cellEditor
编辑器用于编辑列的数据单元格。protected TableCellRenderer
cellRenderer
渲染器用于绘制列的数据单元格。static String
COLUMN_WIDTH_PROPERTY
作为Java 2平台v1.3的过时。static String
HEADER_RENDERER_PROPERTY
作为Java 2平台v1.3的过时。static String
HEADER_VALUE_PROPERTY
作为Java 2平台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平台v1.3开始protected int
width
列的宽度。
-
构造方法摘要
构造方法 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 方法 描述 void
addPropertyChangeListener(PropertyChangeListener listener)
添加一个PropertyChangeListener
到监听器列表。protected TableCellRenderer
createDefaultHeaderRenderer()
从Java 2平台v1.3开始,此方法不是由TableColumn
构造函数调用的。void
disableResizedPosting()
已过时。从Java 2平台v1.3开始void
enableResizedPosting()
已过时。从Java 2平台v1.3开始TableCellEditor
getCellEditor()
返回TableCellEditor
用于编辑此列的值的JTable
。TableCellRenderer
getCellRenderer()
返回TableCellRenderer
用于绘制此列的值的JTable
。TableCellRenderer
getHeaderRenderer()
返回TableCellRenderer
用于绘制标题的TableColumn
。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)
设置由TableCellRenderer
使用的JTable
绘制此列的各个值。void
setHeaderRenderer(TableCellRenderer headerRenderer)
设置TableCellRenderer
用于绘制TableColumn
的标题为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
以适应其标题单元格的宽度。
-
-
-
字段详细信息
-
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
,分别由JTable
getDefaultRenderer
或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
的数组。- 结果
-
如果没有添加任何侦听器,则添加所有
PropertyChangeListener
s或一个空数组 - 从以下版本开始:
- 1.4
-
createDefaultHeaderRenderer
protected TableCellRenderer createDefaultHeaderRenderer()
从Java 2平台v1.3开始,此方法不是由TableColumn
构造函数调用的。 以前这个方法被TableColumn
用来创建一个默认的头渲染器。 从Java 2平台v1.3开始,默认头渲染器为null
。JTableHeader
现在提供了自己的共享默认渲染器,就像JTable
它的单元格渲染器一样。- 结果
- 默认头渲染器
- 另请参见:
-
JTableHeader.createDefaultRenderer()
-
-