Module java.desktop

Class TableModelEvent

java.lang.Object
java.util.EventObject
javax.swing.event.TableModelEvent
所有已实现的接口:
Serializable

public class TableModelEvent extends EventObject
TableModelEvent 用于通知监听器表格模型已更改。该模型事件描述了对 TableModel 的更改,所有对行和列的引用都在模型的坐标系中。根据构造函数中使用的参数,TableModelEvent 可用于指定以下类型的更改:
 TableModelEvent(source);              //  数据,即所有行已更改
 TableModelEvent(source, HEADER_ROW);  //  结构更改,重新分配 TableColumns
 TableModelEvent(source, 1);           //  第 1 行已更改
 TableModelEvent(source, 3, 6);        //  第 3 行到第 6 行(包括)已更改
 TableModelEvent(source, 2, 2, 6);     //  单元格 (2, 6) 已更改
 TableModelEvent(source, 3, 6, ALL_COLUMNS, INSERT); // 第 3 行到第 6 行已插入
 TableModelEvent(source, 3, 6, ALL_COLUMNS, DELETE); // 第 3 行到第 6 行已删除
 
可以使用其他参数组合,但并非所有都有意义。通过子类化,可以添加其他信息,例如:事件是否将发生或已发生。这使得在 DELETE 事件中指定行的规范更有用,但由于 JTable 只需要后事件通知,因此未包含在 swing 包中。

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

参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    指定一行或多行中的所有列。
    protected int
    事件的列。
    static final int
    标识行或列的移除。
    protected int
    已更改的第一行。
    static final int
    标识标题行。
    static final int
    标识新行或列的添加。
    protected int
    已更改的最后一行。
    protected int
    事件的类型。
    static final int
    标识对现有数据的更改。

    Fields declared in class java.util.EventObject

    source
  • Constructor Summary

    Constructors
    Constructor
    Description
    表中的所有行数据已更改,监听器应丢弃基于行的任何状态并重新查询 TableModel 以获取新的行数和所有适当的值。
    TableModelEvent(TableModel source, int row)
    此数据行已更新。
    TableModelEvent(TableModel source, int firstRow, int lastRow)
    行 [firstRow, lastRow] 中的数据已更新。
    TableModelEvent(TableModel source, int firstRow, int lastRow, int column)
    column 中范围 [firstRow, lastRow] 的单元格已更新。
    TableModelEvent(TableModel source, int firstRow, int lastRow, int column, int type)
    从 (firstRow, column) 到 (lastRow, column) 的单元格已更改。
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    返回事件的列。
    int
    返回已更改的第一行。
    int
    返回已更改的最后一行。
    int
    返回事件的类型 - INSERT、UPDATE 和 DELETE 中的一种。

    Methods declared in class java.util.EventObject

    getSource, toString

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • INSERT

      public static final int INSERT
      标识新行或列的添加。
      参见:
    • UPDATE

      public static final int UPDATE
      标识对现有数据的更改。
      参见:
    • DELETE

      public static final int DELETE
      标识行或列的移除。
      参见:
    • HEADER_ROW

      public static final int HEADER_ROW
      标识标题行。
      参见:
    • ALL_COLUMNS

      public static final int ALL_COLUMNS
      指定一行或多行中的所有列。
      参见:
    • type

      protected int type
      事件的类型。
    • firstRow

      protected int firstRow
      已更改的第一行。
    • lastRow

      protected int lastRow
      已更改的最后一行。
    • column

      protected int column
      事件的列。
  • Constructor Details

    • TableModelEvent

      public TableModelEvent(TableModel source)
      表中的所有行数据已更改,监听器应丢弃基于行的任何状态并重新查询 TableModel 以获取新的行数和所有适当的值。在收到此事件时,JTable 将重新绘制整个可见区域,查询模型以获取可见的单元格值。表的结构,即列名、类型和顺序未更改。
      参数:
      source - 受此事件影响的 TableModel
    • TableModelEvent

      public TableModelEvent(TableModel source, int row)
      此数据行已更新。要表示具有不同结构的全新表格的到达,请将 HEADER_ROW 用作 row 的值。当 JTable 收到此事件并且其 autoCreateColumnsFromModel 标志已设置时,它会丢弃任何已有的 TableColumns,并按照它们在模型中出现的顺序重新分配默认的 TableColumns。这与在 JTable 上调用 setModel(TableModel) 相同。
      参数:
      source - 受此事件影响的 TableModel
      row - 已更新的行
    • TableModelEvent

      public TableModelEvent(TableModel source, int firstRow, int lastRow)
      行 [firstRow, lastRow] 中的数据已更新。
      参数:
      source - 受此事件影响的 TableModel
      firstRow - 受此事件影响的第一行
      lastRow - 受此事件影响的最后一行
    • TableModelEvent

      public TableModelEvent(TableModel source, int firstRow, int lastRow, int column)
      column 中范围 [firstRow, lastRow] 的单元格已更新。
      参数:
      source - 受此事件影响的 TableModel
      firstRow - 受此事件影响的第一行
      lastRow - 受此事件影响的最后一行
      column - 更改的单元格的列索引;ALL_COLUMNS 表示更改指定行范围内的所有单元格。
    • TableModelEvent

      public TableModelEvent(TableModel source, int firstRow, int lastRow, int column, int type)
      从 (firstRow, column) 到 (lastRow, column) 的单元格已更改。这里的 column 指的是模型坐标系中单元格的列索引。当 column 为 ALL_COLUMNS 时,将认为更改了指定行范围内的所有单元格。

      type 应为 INSERT、UPDATE 和 DELETE 中的一种。

      参数:
      source - 受此事件影响的 TableModel
      firstRow - 受此事件影响的第一行
      lastRow - 受此事件影响的最后一行
      column - 更改的单元格的列索引;ALL_COLUMNS 表示更改指定行范围内的所有单元格。
      type - 此事件表示的更改类型,INSERTDELETEUPDATE
  • Method Details

    • getFirstRow

      public int getFirstRow()
      返回已更改的第一行。HEADER_ROW 表示元数据,即列的名称、类型和顺序。
      返回:
      一个整数,表示已更改的第一行
    • getLastRow

      public int getLastRow()
      返回已更改的最后一行。
      返回:
      一个整数,表示已更改的最后一行
    • getColumn

      public int getColumn()
      返回事件的列。如果返回值为 ALL_COLUMNS,则表示指定行中的每列都已更改。
      返回:
      一个整数,表示受此事件影响的列
    • getType

      public int getType()
      返回事件的类型 - INSERT、UPDATE 和 DELETE 中的一种。
      返回:
      表模型的更改类型,行或列的 INSERTDELETE,或数据的 UPDATE