模块 java.desktop

类 TableColumn

java.lang.Object
javax.swing.table.TableColumn
所有已实现的接口:
Serializable

public class TableColumn extends Object implements Serializable
TableColumn 表示 JTable 中列的所有属性,例如宽度、可调整大小、最小和最大宽度。此外,TableColumn 为渲染器和编辑器提供插槽,可用于显示和编辑此列中的值。

也可以按类型而不是按列指定渲染器和编辑器 - 请参阅 JTable 类中的 setDefaultRenderer 方法。此默认机制仅在 TableColumn 中的渲染器(或编辑器)为 null 时使用。

TableColumn 存储 JTable 中的列与 TableModel 中的列之间的链接。 modelIndexTableModel 中的列,将查询此列中单元格的数据值。当列在视图中四处移动时,此 modelIndex 不会更改。

笔记:某些实现可能假设所有 TableColumnModel 都是唯一的,因此我们建议不要将同一个 TableColumn 实例多次添加到 TableColumnModel 中。要显示模型中具有相同数据列的 TableColumn ,请创建一个具有相同 modelIndex 的新实例。

Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder

参见:
  • 字段详细信息

    • COLUMN_WIDTH_PROPERTY

      public static final String  COLUMN_WIDTH_PROPERTY
      自 Java 2 平台 v1.3 起已过时。请使用字符串文字来标识属性。
      参见:
    • HEADER_VALUE_PROPERTY

      public static final String  HEADER_VALUE_PROPERTY
      自 Java 2 平台 v1.3 起已过时。请使用字符串文字来标识属性。
      参见:
    • HEADER_RENDERER_PROPERTY

      public static final String  HEADER_RENDERER_PROPERTY
      自 Java 2 平台 v1.3 起已过时。请使用字符串文字来标识属性。
      参见:
    • CELL_RENDERER_PROPERTY

      public static final String  CELL_RENDERER_PROPERTY
      自 Java 2 平台 v1.3 起已过时。请使用字符串文字来标识属性。
      参见:
    • modelIndex

      protected int modelIndex
      模型中要由此 TableColumn 显示的列的索引。随着列在视图中四处移动,modelIndex 保持不变。
    • identifier

      protected Object  identifier
      JTable 的绘图机器不在内部使用该对象;标识符可以在 TableColumn 中设置为标记和定位表列的可选方式。除了 DefaultTableColumnModel 中的 getColumnIndex() 方法中使用的 equals 方法外,表包不会修改或调用这些标识符对象中的任何方法。
    • 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
      如果为真,则允许用户调整列的大小;默认为真。
    • resizedPostingDisableCount

      @Deprecated protected transient int resizedPostingDisableCount
      已弃用。
      从 Java 2 平台 v1.3 开始
      此字段在以前的版本中未使用,目前没有计划在未来支持它。
  • 构造方法详细信息

    • 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,除非初始宽度更小,在这种情况下,最小宽度设置为初始宽度。

      cellRenderercellEditor 参数为 null 时,JTable getDefaultRenderergetDefaultEditor 方法提供的默认值分别用于根据该列中的数据类型提供默认值。可以通过覆盖 JTable 中的 getCellRenderer 方法来规避这种以列为中心的渲染策略。

      参数:
      modelIndex - 为表中的该列提供数据的模型中列的索引;即使在视图中对列重新排序,模型索引也保持不变
      width - 此列的首选宽度和初始宽度
      cellRenderer - 用于呈现此列中的值的对象
      cellEditor - 用于编辑此列中的值的对象
      参见:
  • 方法详情

    • setModelIndex

      @BeanProperty (description ="The model index.") public void setModelIndex(int modelIndex)
      设置此列的模型索引。模型索引是模型中将由此 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

      public Object  getIdentifier()
      返回此列的 identifier 对象。注意 JTable 不使用标识符,它们纯粹是为了方便外部使用。如果 identifiernull ,则 getIdentifier() 返回 getHeaderValue 作为默认值。
      返回:
      identifier 属性
      参见:
    • setHeaderValue

      @BeanProperty (description ="The text to be used by the header renderer.") public void setHeaderValue(Object  headerValue)
      设置 Object,其字符串表示形式将用作 headerRenderer 的值。创建 TableColumn 时,默认的 headerValuenull
      参数:
      headerValue - 新的 headerValue
      参见:
    • getHeaderValue

      public Object  getHeaderValue()
      返回用作标头渲染器值的 Object
      返回:
      headerValue 属性
      参见:
    • setHeaderRenderer

      @BeanProperty (description ="The header renderer.") public void setHeaderRenderer(TableCellRenderer  headerRenderer)
      将用于绘制 TableColumn 的标头的 TableCellRenderer 设置为 headerRenderer

      渲染排序指示器是标题渲染器的责任。如果您正在使用排序并指定渲染器,您的渲染器必须渲染排序指示。

      参数:
      headerRenderer - 新的 headerRenderer
      参见:
    • getHeaderRenderer

      public TableCellRenderer  getHeaderRenderer()
      返回用于绘制 TableColumn 标题的 TableCellRenderer。当 headerRenderernull 时,JTableHeader 使用其 defaultRendererheaderRenderer 的默认值为 null
      返回:
      headerRenderer 属性
      参见:
    • setCellRenderer

      @BeanProperty (description ="The renderer to use for cell values.") public void setCellRenderer(TableCellRenderer  cellRenderer)
      设置 JTable 使用的 TableCellRenderer 为该列绘制单独的值。
      参数:
      cellRenderer - 新的 cellRenderer
      参见:
    • getCellRenderer

      public TableCellRenderer  getCellRenderer()
      返回 JTable 用来为该列绘制值的 TableCellRenderer。列的 cellRenderer 不仅控制列的视觉外观,还用于解释 TableModel 提供的值对象。当 cellRenderernull 时,JTable 使用基于该列中单元格类的默认渲染器。 cellRenderer 的默认值为 null
      返回:
      cellRenderer 属性
      参见:
    • setCellEditor

      @BeanProperty (description ="The editor to use for cell values.") public void setCellEditor(TableCellEditor  cellEditor)
      将编辑器设置为在编辑此列中的单元格时使用。
      参数:
      cellEditor - 新的单元格编辑器
      参见:
    • getCellEditor

      public TableCellEditor  getCellEditor()
      返回 JTable 使用的 TableCellEditor 来编辑此列的值。当 cellEditornull 时,JTable 使用基于该列中单元格类别的默认编辑器。 cellEditor 的默认值为 null
      返回:
      cellEditor 属性
      参见:
    • setWidth

      @BeanProperty (description ="The width of the column.") public void setWidth(int width)
      此方法不应用于设置 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

      @BeanProperty (description ="The minimum width of the column.") public void setMinWidth(int minWidth)
      TableColumn 的最小宽度设置为 minWidth,必要时调整新的最小宽度以确保 0 <= minWidth <= maxWidth。例如,如果 minWidth 参数为负,则此方法将 minWidth 属性设置为 0。

      如果 widthpreferredWidth 属性的值小于新的最小宽度,则此方法将该属性设置为新的最小宽度。

      参数:
      minWidth - 新的最小宽度
      参见:
    • getMinWidth

      public int getMinWidth()
      返回 TableColumn 的最小宽度。 TableColumn 的宽度不能由用户或以编程方式小于此值。
      返回:
      minWidth 属性
      参见:
    • setMaxWidth

      @BeanProperty (description ="The maximum width of the column.") public void setMaxWidth(int maxWidth)
      TableColumn 的最大宽度设置为 maxWidth 或者,如果 maxWidth 小于最小宽度,则设置为最小宽度。

      如果 widthpreferredWidth 属性的值大于新的最大宽度,则此方法将该属性设置为新的最大宽度。

      参数:
      maxWidth - 新的最大宽度
      参见:
    • getMaxWidth

      public int getMaxWidth()
      返回 TableColumn 的最大宽度。 TableColumn 的宽度不能由用户或以编程方式设置得大于此宽度。默认的 maxWidth 是 Integer.MAX_VALUE。
      返回:
      maxWidth 属性
      参见:
    • setResizable

      @BeanProperty (description ="Whether or not this column can be resized.") public void setResizable(boolean isResizable)
      设置此列是否可以调整大小。
      参数:
      isResizable - 如果为真,则允许调整大小;否则为假
      参见:
    • getResizable

      public boolean getResizable()
      如果允许用户调整 TableColumn 的宽度,则返回 true,否则返回 false。无论此设置如何,您都可以通过编程方式更改宽度。默认为真。
      返回:
      isResizable 属性
      参见:
    • sizeWidthToFit

      public void sizeWidthToFit()
      调整 TableColumn 的大小以适合其标题单元格的宽度。如果标头渲染器为 null(默认情况),则此方法不执行任何操作。否则,它将此列的最小、最大和首选宽度设置为标题渲染器提供的组件的最小、最大和首选大小的宽度。此 TableColumn 的瞬态“宽度”属性也设置为首选宽度。请注意,表包内部不使用此方法。
      参见:
    • 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 的标识符(“标识符”)
      • 此 TableColumn 的标头值(“headerValue”)
      • 此 TableColumn 的标题渲染器(“headerRenderer”)
      • 此 TableColumn 的单元格渲染器(“cellRenderer”)
      • 此 TableColumn 的单元格编辑器(“cellEditor”)
      • 此 TableColumn 的宽度(“宽度”)
      • 此 TableColumn 的首选宽度(“preferredWidth”)
      • 此 TableColumn 的最小宽度(“minWidth”)
      • 此 TableColumn 的最大宽度(“maxWidth”)
      • 此 TableColumn 的可调整大小状态(“isResizable”)
      参数:
      listener - 要添加的监听器
      参见:
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener  listener)
      从监听器列表中删除 PropertyChangeListener。要删除的 PropertyChangeListener 已注册所有属性。
      参数:
      listener - 要删除的监听器
    • getPropertyChangeListeners

      public PropertyChangeListener [] getPropertyChangeListeners()
      返回使用 addPropertyChangeListener() 添加到此 TableColumn 的所有 PropertyChangeListener 的数组。
      返回:
      添加所有 PropertyChangeListener 或如果未添加任何监听器,则为空数组
      自从:
      1.4
    • createDefaultHeaderRenderer

      protected TableCellRenderer  createDefaultHeaderRenderer()
      从 Java 2 平台 v1.3 开始,TableColumn 构造函数不调用此方法。以前,TableColumn 使用此方法来创建默认标题渲染器。从 Java 2 平台 v1.3 开始,默认的标头渲染器是 nullJTableHeader 现在提供自己的共享默认渲染器,就像 JTable 为其单元格渲染器所做的那样。
      返回:
      默认标题渲染器
      参见: