模块  java.desktop
软件包  javax.swing.table

Class TableColumn

  • 实现的所有接口
    Serializable

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

    也可以基于每个类型而不是每列来指定渲染器和编辑器 - 请参阅JTable类中的setDefaultRenderer方法。 当渲染器(或编辑器)此默认机制仅用于TableColumnnull

    TableColumn存储在列之间的链接JTable中,列TableModel modelIndex是在列TableModel ,这将被查询用于该列中的单元中的数据值。 当列在视图中移动时,此modelIndex不会更改。

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

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

    另请参见:
    TableColumnModelDefaultTableColumnModelJTableHeader.getDefaultRenderer()JTable.getDefaultRenderer(Class)JTable.getDefaultEditor(Class)JTable.getCellRenderer(int, int)JTable.getCellEditor(int, int)Serialized Form
    • 字段详细信息

      • 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设置,作为标记和定位表列的可选方法。 表的包不修改或调用在比其它这些标识符的对象的任何方法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
        Deprecated.
        as of Java 2 platform v1.3
        此字段未在以前的版本中使用过,目前没有计划在将来支持它。
    • 构造方法详细信息

      • TableColumn

        public TableColumn​(int modelIndex)
        封面方法,使用默认宽度 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,在这种情况下,最小宽度设置为初始宽度。

        cellRenderercellEditor参数为nullJTable getDefaultRenderergetDefaultEditor方法分别提供的默认值用于根据此列中的数据类型提供默认值。 本栏目为中心的渲染策略可以通过重写来规避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不使用注释标识符,它们纯粹是外部使用的便利。 如果identifiernullgetIdentifier()回报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 ,默认值headerValuenull
        参数
        headerValue - 新的headerValue
        另请参见:
        getHeaderValue()
      • setHeaderRenderer

        @BeanProperty(description="The header renderer.")
        public void setHeaderRenderer​(TableCellRenderer headerRenderer)
        设置TableCellRenderer用来牵动TableColumn的头headerRenderer

        标题渲染器负责呈现排序指示符。 如果使用排序并指定渲染器,则渲染器必须呈现排序指示。

        参数
        headerRenderer - 新的headerRenderer
        另请参见:
        getHeaderRenderer()
      • setCellRenderer

        @BeanProperty(description="The renderer to use for cell values.")
        public void setCellRenderer​(TableCellRenderer cellRenderer)
        设置 TableCellRenderer使用的 JTable为此列绘制单个值。
        参数
        cellRenderer - 新的cellRenderer
        另请参见:
        getCellRenderer()
      • 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。

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

        参数
        minWidth - 新的最小宽度
        另请参见:
        getMinWidth()setPreferredWidth(int)setMaxWidth(int)
      • setMaxWidth

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

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

        参数
        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 (默认情况),则此方法不执行任何操作。 否则,它将此列的最小,最大和首选宽度设置为标题渲染器传递的Component的最小,最大和首选大小的宽度。 此TableColumn的瞬态“width”属性也设置为首选宽度。 请注意,表包不在内部使用此方法。
        另请参见:
        setPreferredWidth(int)
      • disableResizedPosting

        @Deprecated
        public void disableResizedPosting()
        Deprecated.
        as of Java 2 platform v1.3
        此字段未在以前的版本中使用过,目前没有计划在将来支持它。
      • enableResizedPosting

        @Deprecated
        public void enableResizedPosting()
        Deprecated.
        as of Java 2 platform 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(PropertyChangeListener)
      • 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开始,默认的标题渲染器为null JTableHeader现在提供了自己的共享默认渲染器,就像JTable为其单元格渲染器JTable那样。
        结果
        默认的标题渲染器
        另请参见:
        JTableHeader.createDefaultRenderer()