Module  java.desktop
软件包  javax.swing.table

Class 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

    另请参见:
    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的过时。 请使用字符串文字来标识属性。
        另请参见:
        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​(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,除非初始宽度较小,在这种情况下,最小宽度设置为初始宽度。

        cellRenderercellEditor参数为null ,分别由JTable 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 (默认情况),此方法不执行任何操作。 否则,它将该列的最小值,最大值和优选宽度设置为标题渲染器传递的组件的最小值,最大值和优选大小的宽度。 此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()