JavaTM 2 Platform
Standard Ed. 6

javax.swing.table
類別 AbstractTableModel

java.lang.Object
  繼承者 javax.swing.table.AbstractTableModel
所有已實作的介面:
Serializable, TableModel
直接已知子類別:
DefaultTableModel

public abstract class AbstractTableModel
extends Object
implements TableModel, Serializable

此抽象類別為 TableModel 介面中的大多數方法提供預設實作。它負責管理偵聽器,並為產生 TableModelEvents 以及將其排程到偵聽器提供方便。要創建一個具體的 TableModel 作為 AbstractTableModel 的子類別,只需提供對以下三個方法的實作:

  public int getRowCount();
  public int getColumnCount();
  public Object getValueAt(int row, int column);
  

警告:此類別的已序列化物件與以後的 Swing 版本不相容。當前的序列化支持適用於短期存儲或運行相同 Swing 版本的應用程序之間的 RMI。從 1.4 版本開始,已在 java.beans 套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder


欄位摘要
protected  EventListenerList listenerList
          偵聽器的列表
 
建構子摘要
AbstractTableModel()
           
 
方法摘要
 void addTableModelListener(TableModelListener l)
          每次資料模型發生更改時,就向被通知的列表添加一個偵聽器。
 int findColumn(String columnName)
          返回具有給定名稱的列。
 void fireTableCellUpdated(int row, int column)
          通知所有偵聽器,已更新 [row, column] 處的單元格值。
 void fireTableChanged(TableModelEvent e)
          將給定的通知事件轉發到所有將自身註冊為此表模型的偵聽器的 TableModelListeners
 void fireTableDataChanged()
          通知所有偵聽器,表的所有行單元格值可能已更改。
 void fireTableRowsDeleted(int firstRow, int lastRow)
          通知所有偵聽器,已刪除範圍在 [firstRow, lastRow](包括)的行。
 void fireTableRowsInserted(int firstRow, int lastRow)
          通知所有偵聽器,已插入範圍在 [firstRow, lastRow](包括)的行。
 void fireTableRowsUpdated(int firstRow, int lastRow)
          通知所有偵聽器,已更新範圍在 [firstRow, lastRow](包括)的行。
 void fireTableStructureChanged()
          通知所有偵聽器,表的結構已更改。
 Class<?> getColumnClass(int columnIndex)
          返回 Object.class 而不管 columnIndex 是多少。
 String getColumnName(int column)
          返回列預設名稱,其中列使用以下工作表約定:A、B、C……Z、AA、AB 等等。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
          返回一個套件含當前註冊為此 AbstractTableModel 上的 FooListener 的所有物件的陣列。
 TableModelListener[] getTableModelListeners()
          返回一個套件含在此模型上註冊的所有表模型偵聽器的陣列。
 boolean isCellEditable(int rowIndex, int columnIndex)
          返回 false。
 void removeTableModelListener(TableModelListener l)
          每次資料模型發生更改時,就從被通知的列表移除一個偵聽器。
 void setValueAt(Object aValue, int rowIndex, int columnIndex)
          由於提供了此空實作,因此,如果使用者的資料模型是不可編輯的,則他們不必實作此方法。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
從介面 javax.swing.table.TableModel 繼承的方法
getColumnCount, getRowCount, getValueAt
 

欄位詳細資訊

listenerList

protected EventListenerList listenerList
偵聽器的列表

建構子詳細資訊

AbstractTableModel

public AbstractTableModel()
方法詳細資訊

getColumnName

public String getColumnName(int column)
返回列預設名稱,其中列使用以下工作表約定:A、B、C……Z、AA、AB 等等。如果無法找到 column,則返回一個空字元串。

指定者:
介面 TableModel 中的 getColumnName
參數:
column - 被查詢的列
返回:
包含 column 預設名稱的字元串

findColumn

public int findColumn(String columnName)
返回具有給定名稱的列。由於實作是未用過的,因此,如果經常調用此方法,則應該覆寫此方法。此方法不在 TableModel 介面中,也不被 JTable 使用。

參數:
columnName - 套件含要尋找的列名稱的字元串
返回:
名稱為 columnName 的列,如果未找到該列,則返回 -1

getColumnClass

public Class<?> getColumnClass(int columnIndex)
返回 Object.class 而不管 columnIndex 是多少。

指定者:
介面 TableModel 中的 getColumnClass
參數:
columnIndex - 被查詢的列
返回:
Object.class

isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
返回 false。這是所有單元格的預設實作。

指定者:
介面 TableModel 中的 isCellEditable
參數:
rowIndex - 被查詢的行
columnIndex - 被查詢的列
返回:
false
另請參見:
TableModel.setValueAt(java.lang.Object, int, int)

setValueAt

public void setValueAt(Object aValue,
                       int rowIndex,
                       int columnIndex)
由於提供了此空實作,因此,如果使用者的資料模型是不可編輯的,則他們不必實作此方法。

指定者:
介面 TableModel 中的 setValueAt
參數:
aValue - 要分派給單元格的值
rowIndex - 單元格所在行
columnIndex - 單元格所在列
另請參見:
TableModel.getValueAt(int, int), TableModel.isCellEditable(int, int)

addTableModelListener

public void addTableModelListener(TableModelListener l)
每次資料模型發生更改時,就向被通知的列表添加一個偵聽器。

指定者:
介面 TableModel 中的 addTableModelListener
參數:
l - TableModelListener

removeTableModelListener

public void removeTableModelListener(TableModelListener l)
每次資料模型發生更改時,就從被通知的列表移除一個偵聽器。

指定者:
介面 TableModel 中的 removeTableModelListener
參數:
l - TableModelListener

getTableModelListeners

public TableModelListener[] getTableModelListeners()
返回一個套件含在此模型上註冊的所有表模型偵聽器的陣列。

返回:
此模型的所有 TableModelListener,如果當前沒有已註冊的表模型偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
addTableModelListener(javax.swing.event.TableModelListener), removeTableModelListener(javax.swing.event.TableModelListener)

fireTableDataChanged

public void fireTableDataChanged()
通知所有偵聽器,表的所有行單元格值可能已更改。行數也可能已更改,並且 JTable 應該從頭開始重新繪製該表。假定表的結構(如同列的順序)是相同的。

另請參見:
TableModelEvent, EventListenerList, JTable.tableChanged(TableModelEvent)

fireTableStructureChanged

public void fireTableStructureChanged()
通知所有偵聽器,表的結構已更改。表中的列數,新列的名稱和型別可能與以前的狀態不同。如果 JTable 接收此事件,並且設置了其 autoCreateColumnsFromModel 標誌,則它丟棄之前具有的所有表列,並按列在模型中出現的順序重新分派預設列。這與對 JTable 調用 setModel(TableModel) 具有相同的效果。

另請參見:
TableModelEvent, EventListenerList

fireTableRowsInserted

public void fireTableRowsInserted(int firstRow,
                                  int lastRow)
通知所有偵聽器,已插入範圍在 [firstRow, lastRow](包括)的行。

參數:
firstRow - 第一行
lastRow - 最後一行
另請參見:
TableModelEvent, EventListenerList

fireTableRowsUpdated

public void fireTableRowsUpdated(int firstRow,
                                 int lastRow)
通知所有偵聽器,已更新範圍在 [firstRow, lastRow](包括)的行。

參數:
firstRow - 第一行
lastRow - 最後一行
另請參見:
TableModelEvent, EventListenerList

fireTableRowsDeleted

public void fireTableRowsDeleted(int firstRow,
                                 int lastRow)
通知所有偵聽器,已刪除範圍在 [firstRow, lastRow](包括)的行。

參數:
firstRow - 第一行
lastRow - 最後一行
另請參見:
TableModelEvent, EventListenerList

fireTableCellUpdated

public void fireTableCellUpdated(int row,
                                 int column)
通知所有偵聽器,已更新 [row, column] 處的單元格值。

參數:
row - 已更新的單元格所在行
column - 已更新的單元格所在列
另請參見:
TableModelEvent, EventListenerList

fireTableChanged

public void fireTableChanged(TableModelEvent e)
將給定的通知事件轉發到所有將自身註冊為此表模型的偵聽器的 TableModelListeners

參數:
e - 要轉發的事件
另請參見:
addTableModelListener(javax.swing.event.TableModelListener), TableModelEvent, EventListenerList

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
返回一個套件含當前註冊為此 AbstractTableModel 上的 FooListener 的所有物件的陣列。FooListener 是用 addFooListener 方法註冊的。

可以使用 class 文字值(如 FooListener.class)來指定 listenerType 參數。例如,可以通過以下程式碼查詢模型 m,以獲得其表模型偵聽器:

TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class));
如果不存在這樣的偵聽器,則此方法將返回一個空陣列。

參數:
listenerType - 所請求偵聽器的型別;此參數應該指定一個從 java.util.EventListener 繼承的介面
返回:
在此元件上註冊為 FooListener 的所有物件組成的陣列,如果沒有添加這樣的偵聽器,則返回一個空陣列
拋出:
ClassCastException - 如果 listenerType 沒有指定實作 java.util.EventListener 的類別或介面
從以下版本開始:
1.3
另請參見:
getTableModelListeners()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only