java.lang.Object javax.swing.table.TableColumn
public class TableColumn
TableColumn
表示 JTable
中列的所有属性,如宽度、大小可调整性、最小和最大宽度。此外,TableColumn
还为显示和编辑此列中值的渲染器和编辑器提供了槽。
还可以基于每种类型,而不是每列来指定渲染器和编辑器,请参阅 JTable
类中的 setDefaultRenderer
方法。此默认机制仅用于 TableColumn
中的渲染器(或编辑器)为 null
的情况。
TableColumn
存储 JTable
中各列与 TableModel
中各列之间的链接。modelIndex
是 TableModel
中的列,要获得此列中单元格的数据值,可对 modelIndex
进行查询。在视图中移动列时,此 modelIndex
不更改。
注:某些实现可能假定所有 TableColumnModel
都是唯一的,因此我们建议不要多次将同一 TableColumn
实例添加到 TableColumnModel
中。要从模型中显示具有相同数据列的 TableColumn
,可创建具有相同 modelIndex
的新实例。
警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
TableColumnModel
,
DefaultTableColumnModel
,
JTableHeader.getDefaultRenderer()
,
JTable.getDefaultRenderer(Class)
,
JTable.getDefaultEditor(Class)
,
JTable.getCellRenderer(int, int)
,
JTable.getCellEditor(int, int)
字段摘要 | |
---|---|
static String |
CELL_RENDERER_PROPERTY 从 Java 2 platform v1.3 开始已过时。 |
protected TableCellEditor |
cellEditor 用于编辑列的数据单元格的编辑器。 |
protected TableCellRenderer |
cellRenderer 用于绘制列的数据单元格的渲染器。 |
static String |
COLUMN_WIDTH_PROPERTY 从 Java 2 platform v1.3 开始已过时。 |
static String |
HEADER_RENDERER_PROPERTY 从 Java 2 platform v1.3 开始已过时。 |
static String |
HEADER_VALUE_PROPERTY 从 Java 2 platform 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 platform v1.3 开始 |
protected int |
width 列的宽度。 |
构造方法摘要 | |
---|---|
TableColumn() 覆盖方法,它使用的默认模型索引为 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 |
addPropertyChangeListener(PropertyChangeListener listener) 向侦听器列表中添加一个 PropertyChangeListener 。 |
protected TableCellRenderer |
createDefaultHeaderRenderer() 从 Java 2 platform v1.3 开始, TableColumn 构造方法不再调用此方法。 |
void |
disableResizedPosting() 已过时。 从 Java 2 platform v1.3 开始 |
void |
enableResizedPosting() 已过时。 从 Java 2 platform v1.3 开始 |
TableCellEditor |
getCellEditor() 返回 JTable 用于编辑此列各值的 TableCellEditor 。 |
TableCellRenderer |
getCellRenderer() 返回 JTable 用于绘制此列各值的 TableCellRenderer 。 |
TableCellRenderer |
getHeaderRenderer() 返回用于绘制 TableColumn 标题的 TableCellRenderer 。 |
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) 设置 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 |
sizeWidthToFit() 调整 TableColumn 的大小,以适合其标题单元格的宽度。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final String COLUMN_WIDTH_PROPERTY
public static final String HEADER_VALUE_PROPERTY
public static final String HEADER_RENDERER_PROPERTY
public static final String CELL_RENDERER_PROPERTY
protected int modelIndex
TableColumn
显示该模型。在视图中移动列时,
modelIndex
保持不变。
protected Object identifier
JTable
的绘制机制,此对象不会在内部使用;可在
TableColumn
中设置标识符,并将其作为标记和定位表列的可选方式。table 包只修改或调用这些标识符对象中的
equals
方法,该方法用于
DefaultTableColumnModel
中的
getColumnIndex()
方法中。
protected int width
protected int minWidth
protected int maxWidth
protected TableCellRenderer headerRenderer
protected Object headerValue
protected TableCellRenderer cellRenderer
protected TableCellEditor cellEditor
protected boolean isResizable
@Deprecated protected transient int resizedPostingDisableCount
构造方法详细信息 |
---|
public TableColumn()
null
、编辑器为
null
。此方法用于进行序列化。
public TableColumn(int modelIndex)
null
、编辑器为
null
。
public TableColumn(int modelIndex, int width)
null
、编辑器为
null
。
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
- 用于编辑此列中值的对象
getMinWidth()
,
JTable.getDefaultRenderer(Class)
,
JTable.getDefaultEditor(Class)
,
JTable.getCellRenderer(int, int)
,
JTable.getCellEditor(int, int)
方法详细信息 |
---|
public void setModelIndex(int modelIndex)
TableColumn
将要显示的列的索引。
TableColumn
在视图中移动时,该模型索引保持不变。
modelIndex
- 新的 modelIndex
public int getModelIndex()
modelIndex
属性
public void setIdentifier(Object identifier)
TableColumn
的标识符设置为
anIdentifier
。
注:JTable
不使用标识符,它们只是为了便于外部标记和标识列的位置。
identifier
- 此列的标识符
getIdentifier()
public Object getIdentifier()
identifier
对象。注意,
JTable
不使用标识符,它们只是为了便于外部使用。如果
identifier
为
null
,则
getIdentifier()
返回
getHeaderValue
作为默认值。
identifier
属性
setIdentifier(java.lang.Object)
public void setHeaderValue(Object headerValue)
Object
,将使用其字符串表示形式作为
headerRenderer
的值。创建
TableColumn
时,默认的
headerValue
为
null
。
headerValue
- 新的 headerValue
getHeaderValue()
public Object getHeaderValue()
Object
。
headerValue
属性
setHeaderValue(java.lang.Object)
public void setHeaderRenderer(TableCellRenderer headerRenderer)
TableColumn
的标题的
TableCellRenderer
设置为
headerRenderer
。
标题渲染器负责呈现排序指示符。如果正在使用排序并指定了渲染器,则此渲染器必须呈现排序指示。
headerRenderer
- 新的 headerRenderer
getHeaderRenderer()
public TableCellRenderer getHeaderRenderer()
TableColumn
标题的
TableCellRenderer
。
headerRenderer
为
null
时,
JTableHeader
使用其
defaultRenderer
。
headerRenderer
的默认值为
null
。
headerRenderer
属性
setHeaderRenderer(javax.swing.table.TableCellRenderer)
,
setHeaderValue(java.lang.Object)
,
JTableHeader.getDefaultRenderer()
public void setCellRenderer(TableCellRenderer cellRenderer)
JTable
用于绘制此列各值的
TableCellRenderer
。
cellRenderer
- 新的 cellRenderer
getCellRenderer()
public TableCellRenderer getCellRenderer()
JTable
用于绘制此列各值的
TableCellRenderer
。列的
cellRenderer
不仅控制着该列的可视外观,而且还用于解释
TableModel
所提供的值对象。
cellRenderer
为
null
时,
JTable
根据该列中单元格的类来使用默认的编辑器。
cellRenderer
的默认值为
null
。
public void setCellEditor(TableCellEditor cellEditor)
cellEditor
- 新的 cellEditor
getCellEditor()
public TableCellEditor getCellEditor()
JTable
用于编辑此列各值的
TableCellEditor
。
cellEditor
为
null
时,
JTable
根据该列中单元格的类来使用默认的渲染器。
cellEditor
的默认值为
null
。
public void setWidth(int width)
JTable
中列的宽度,而应使用
setPreferredWidth
。与 AWT 中的布局管理器类似,在表本身更改大小时,或者更改列的首选宽度时,
JTable
会自动调整列的宽度。因此,以编程方式设置宽度没有长期的效果。
此方法将此列的宽度设置为 width
。如果 width
超出最小或最大宽度,则将其调整为合适的界限值。
width
- 新宽度
getWidth()
,
setMinWidth(int)
,
setMaxWidth(int)
,
setPreferredWidth(int)
,
JTable.doLayout()
public int getWidth()
TableColumn
的宽度。默认宽度为 75。
width
属性
setWidth(int)
public void setPreferredWidth(int preferredWidth)
preferredWidth
。如果
preferredWidth
超出最小或最大宽度,则将其调整为合适的界限值。
有关如何根据 preferredWidth
计算 JTable
(和 JTableHeader
)中列宽度的细节,请参见 JTable
中的 doLayout
方法。
preferredWidth
- 新的首选宽度
getPreferredWidth()
,
JTable.doLayout()
public int getPreferredWidth()
TableColumn
的首选宽度。默认首选宽度为 75。
preferredWidth
属性
setPreferredWidth(int)
public void setMinWidth(int minWidth)
TableColumn
的最小宽度设置为
minWidth
,如有必要,调整新的最小宽度以确保 0 <=
minWidth
<=
maxWidth
。例如,如果
minWidth
参数为负,则此方法将
minWidth
属性设置为 0。
如果 width
或 preferredWidth
属性的值小于新的最小宽度,则此方法将该属性设置为新的最小宽度。
minWidth
- 新的最小宽度
getMinWidth()
,
setPreferredWidth(int)
,
setMaxWidth(int)
public int getMinWidth()
TableColumn
的最小宽度。不能通过用户或编程的方式将
TableColumn
的宽度设置为小于此值。
minWidth
属性
setMinWidth(int)
,
TableColumn(int, int, TableCellRenderer, TableCellEditor)
public void setMaxWidth(int maxWidth)
TableColumn
的最大宽度设置为
maxWidth
;如果
maxWidth
小于最小宽度,则设置为最小宽度。
如果 width
或 preferredWidth
属性的值大于新的最大宽度,则此方法将该属性设置为新的最大宽度。
maxWidth
- 新的最大宽度
getMaxWidth()
,
setPreferredWidth(int)
,
setMinWidth(int)
public int getMaxWidth()
TableColumn
的最大宽度。不能通过用户或编程的方式将
TableColumn
的宽度设置为大于此值。默认的 maxWidth 为 Integer.MAX_VALUE。
maxWidth
属性
setMaxWidth(int)
public void setResizable(boolean isResizable)
isResizable
- 如果为 true,则允许调整大小;否则为 false
getResizable()
public boolean getResizable()
TableColumn
的宽度,则返回 true;否则返回 false。无论此设置是什么,都可以通过编程方式更改宽度。默认值为 true。
isResizable
属性
setResizable(boolean)
public void sizeWidthToFit()
TableColumn
的大小,以适合其标题单元格的宽度。如果标题渲染器为
null
(默认情况如此),则此方法不执行任何操作。否则,此方法将此列的最小、最大和首选宽度设置为标题渲染器所传递的 Component 的最小、最大和首选大小。此 TableColumn 的瞬态 "width" 属性也设置为首选宽度。注意,table 包不会在内部使用此方法。
setPreferredWidth(int)
@Deprecated public void disableResizedPosting()
@Deprecated public void enableResizedPosting()
public void addPropertyChangeListener(PropertyChangeListener listener)
PropertyChangeListener
。该侦听器是为所有属性注册的。
响应对当前组件上 setFont
、setBackground
或 setForeground
的显式调用时,将触发一个 PropertyChangeEvent
。注意,如果当前组件将继承其容器的前景、背景或字体,则在响应所继承属性中的更改时不会触发任何事件。
listener
- 要添加的侦听器
public void removePropertyChangeListener(PropertyChangeListe