JavaTM 2 Platform
Standard Ed. 6

javax.swing.table
類別 DefaultTableColumnModel

java.lang.Object
  繼承者 javax.swing.table.DefaultTableColumnModel
所有已實作的介面:
PropertyChangeListener, Serializable, EventListener, ListSelectionListener, TableColumnModel

public class DefaultTableColumnModel
extends Object
implements TableColumnModel, PropertyChangeListener, ListSelectionListener, Serializable

JTable 的標準列處理程序。

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

另請參見:
JTable

欄位摘要
protected  ChangeEvent changeEvent
          更改事件(只需要一個)
protected  int columnMargin
          每列之間的空白寬度
protected  boolean columnSelectionAllowed
          此列模型中允許的列選擇
protected  EventListenerList listenerList
          TableColumnModelListener 的列表
protected  ListSelectionModel selectionModel
          追蹤列選擇的模型
protected  Vector<TableColumn> tableColumns
          此模型中 TableColumn 物件組成的陣列
protected  int totalColumnWidth
          所有列總寬度的本地快取記憶體
 
建構子摘要
DefaultTableColumnModel()
          創建預設的表列模型。
 
方法摘要
 void addColumn(TableColumn aColumn)
          將 aColumn 追加到 tableColumns 陣列的結尾。
 void addColumnModelListener(TableColumnModelListener x)
          添加表列模型事件的偵聽器。
protected  ListSelectionModel createSelectionModel()
          創建新的預設列表選擇模型。
protected  void fireColumnAdded(TableColumnModelEvent e)
          通知所有對此事件型別的通知感興趣的已註冊偵聽器。
protected  void fireColumnMarginChanged()
          通知所有對此事件型別的通知感興趣的已註冊偵聽器。
protected  void fireColumnMoved(TableColumnModelEvent e)
          通知所有對此事件型別的通知感興趣的已註冊偵聽器。
protected  void fireColumnRemoved(TableColumnModelEvent e)
          通知所有對此事件型別的通知感興趣的已註冊偵聽器。
protected  void fireColumnSelectionChanged(ListSelectionEvent e)
          通知所有對此事件型別的通知感興趣的已註冊偵聽器。
 TableColumn getColumn(int columnIndex)
          返回 columnIndex 處列的 TableColumn 物件。
 int getColumnCount()
          返回 tableColumns 陣列中的列數。
 int getColumnIndex(Object identifier)
          返回 tableColumns 陣列中第一列的索引,當使用 equals 進行比較時,該列的標識符等於 identifier
 int getColumnIndexAtX(int x)
          返回位於 x 處列的索引,如果該點處沒有列,則返回 -1。
 int getColumnMargin()
          返回 TableColumn 的空白寬度。
 TableColumnModelListener[] getColumnModelListeners()
          返回一個套件含在此模型上註冊的所有列模型偵聽器的陣列。
 Enumeration<TableColumn> getColumns()
          返回該模型中所有列的一個 Enumeration
 boolean getColumnSelectionAllowed()
          如果允許列選擇,則返回 true,否則返回 false。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
          返回當前已在此模型上註冊為 FooListener 的所有物件組成的陣列。
 int getSelectedColumnCount()
          返回選定的列數。
 int[] getSelectedColumns()
          返回包含選定列的陣列。
 ListSelectionModel getSelectionModel()
          返回用來維護列選擇狀態的 ListSelectionModel
 int getTotalColumnWidth()
          返回所有列的總寬度。
 void moveColumn(int columnIndex, int newIndex)
          將 columnIndex 位置的列和標題移到 newIndex
 void propertyChange(PropertyChangeEvent evt)
          Property Change Listener 更改方法。
protected  void recalcWidthCache()
          重新計算所有列的總寬度。
 void removeColumn(TableColumn column)
          從 tableColumns 陣列刪除 column
 void removeColumnModelListener(TableColumnModelListener x)
          移除表列模型事件的偵聽器。
 void setColumnMargin(int newMargin)
          將列空白設置為 newMargin
 void setColumnSelectionAllowed(boolean flag)
          設置是否允許列選擇。
 void setSelectionModel(ListSelectionModel newModel)
          將此 TableColumnModel 的選擇模型設置為 newModel,並為來自新選擇模型的偵聽器通知註冊它。
 void valueChanged(ListSelectionEvent e)
          列選擇更改時轉發 ListSelectionEventsListSelectionListener
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

tableColumns

protected Vector<TableColumn> tableColumns
此模型中 TableColumn 物件組成的陣列


selectionModel

protected ListSelectionModel selectionModel
追蹤列選擇的模型


columnMargin

protected int columnMargin
每列之間的空白寬度


listenerList

protected EventListenerList listenerList
TableColumnModelListener 的列表


changeEvent

protected transient ChangeEvent changeEvent
更改事件(只需要一個)


columnSelectionAllowed

protected boolean columnSelectionAllowed
此列模型中允許的列選擇


totalColumnWidth

protected int totalColumnWidth
所有列總寬度的本地快取記憶體

建構子詳細資訊

DefaultTableColumnModel

public DefaultTableColumnModel()
創建預設的表列模型。

方法詳細資訊

addColumn

public void addColumn(TableColumn aColumn)
aColumn 追加到 tableColumns 陣列的結尾。此方法還將 columnAdded 事件發送到它的偵聽器。

指定者:
介面 TableColumnModel 中的 addColumn
參數:
aColumn - 要添加的 TableColumn
拋出:
IllegalArgumentException - 如果 aColumnnull
另請參見:
removeColumn(javax.swing.table.TableColumn)

removeColumn

public void removeColumn(TableColumn column)
tableColumns 陣列刪除 column。如果 column 不在該表各列的列表中,則此方法不執行任何操作。此方法調用 tile 重新調整標題和表視圖的大小。此方法還將 columnRemoved 事件發送到它的偵聽器。

指定者:
介面 TableColumnModel 中的 removeColumn
參數:
column - 要移除的 TableColumn
另請參見:
addColumn(javax.swing.table.TableColumn)

moveColumn

public void moveColumn(int columnIndex,
                       int newIndex)
columnIndex 位置的列和標題移到 newIndex。原來在 columnIndex 位置的列現在可以在 newIndex 處找到。newIndex 位置上的原有列向左或右移動以留出空間。如果 columnIndex 等於 newIndex,則此操作不移動任何列。此方法還將 columnMoved 事件發送到它的偵聽器。

指定者:
介面 TableColumnModel 中的 moveColumn
參數:
columnIndex - 要移動列的索引
newIndex - 將列移動到該新索引位置
拋出:
IllegalArgumentException - 如果 columnnewIndex 不在有效範圍內

setColumnMargin

public void setColumnMargin(int newMargin)
將列空白設置為 newMargin。此方法還將 columnMarginChanged 事件發送到它的偵聽器。

指定者:
介面 TableColumnModel 中的 setColumnMargin
參數:
newMargin - 新的空白寬度,以像素為單位
另請參見:
getColumnMargin(), getTotalColumnWidth()

getColumnCount

public int getColumnCount()
返回 tableColumns 陣列中的列數。

指定者:
介面 TableColumnModel 中的 getColumnCount
返回:
tableColumns 陣列中的列數
另請參見:
getColumns()

getColumns

public Enumeration<TableColumn> getColumns()
返回該模型中所有列的一個 Enumeration

指定者:
介面 TableColumnModel 中的 getColumns
返回:
該模型中所有列的一個 Enumeration

getColumnIndex

public int getColumnIndex(Object identifier)
返回 tableColumns 陣列中第一列的索引,當使用 equals 進行比較時,該列的標識符等於 identifier

指定者:
介面 TableColumnModel 中的 getColumnIndex
參數:
identifier - 標識符物件
返回:
tableColumns 陣列中第一列的索引,該列的標識符等於 identifier
拋出:
IllegalArgumentException - 如果 identifiernull,或者沒有 TableColumn 具有此 identifier
另請參見:
getColumn(int)

getColumn

public TableColumn getColumn(int columnIndex)
返回 columnIndex 處列的 TableColumn 物件。

指定者:
介面 TableColumnModel 中的 getColumn
參數:
columnIndex - 所需列的索引
返回:
columnIndex 處列的 TableColumn 物件

getColumnMargin

public int getColumnMargin()
返回 TableColumn 的空白寬度。預設的 columnMargin 為 1。

指定者:
介面 TableColumnModel 中的 getColumnMargin
返回:
TableColumn 的最大寬度
另請參見:
setColumnMargin(int)

getColumnIndexAtX

public int getColumnIndexAtX(int x)
返回位於 x 處列的索引,如果該點處沒有列,則返回 -1。 為了與 Swing 的可分離模型架構保持一致,TableColumnModel 不知道表的各列是如何實際顯示在螢幕上的。各列的可視化表示由使用此模型的視圖/控制器(通常是 JTable)來負責。該視圖/控制器無需從左到右按順序顯示各列。例如,為了適應語言環境的優先選擇,可以從右到左顯示各列,或者可能根據使用者的請求隱藏某些列。因為模型不知道各列是如何在螢幕上佈局的,所以不應將給定的 xPosition 認為是 2D 圖形空間中的坐標。相反,應該將其認為是從模型中首列開始的一個寬度。如果需要 2D 空間中給定 X 坐標的列索引,則可以使用 JTable.columnAtPoint

指定者:
介面 TableColumnModel 中的 getColumnIndexAtX
參數:
x - 需要的水平位置
返回:
列的索引,如果未找到列,則返回 -1
另請參見:
JTable.columnAtPoint(java.awt.Point)

getTotalColumnWidth

public int getTotalColumnWidth()
返回所有列的總寬度。

指定者:
介面 TableColumnModel 中的 getTotalColumnWidth
返回:
totalColumnWidth 屬性

setSelectionModel

public void setSelectionModel(ListSelectionModel newModel)
將此 TableColumnModel 的選擇模型設置為 newModel,並為來自新選擇模型的偵聽器通知註冊它。如果 newModelnull,則拋出一個異常。

指定者:
介面 TableColumnModel 中的 setSelectionModel
參數:
newModel - 新的選擇模型
拋出:
IllegalArgumentException - 如果 newModelnull
另請參見:
getSelectionModel()

getSelectionModel

public ListSelectionModel getSelectionModel()
返回用來維護列選擇狀態的 ListSelectionModel

指定者:
介面 TableColumnModel 中的 getSelectionModel
返回:
提供列選擇狀態的物件。如果不允許列選擇,則返回 null
另請參見:
setSelectionModel(javax.swing.ListSelectionModel)

setColumnSelectionAllowed

public void setColumnSelectionAllowed(boolean flag)
設置是否允許列選擇。預設值為 false。

指定者:
介面 TableColumnModel 中的 setColumnSelectionAllowed
參數:
flag - 如果允許列選擇,則為 true,否則為 false
另請參見:
TableColumnModel.getColumnSelectionAllowed()

getColumnSelectionAllowed

public boolean getColumnSelectionAllowed()
如果允許列選擇,則返回 true,否則返回 false。預設值為 false。

指定者:
介面 TableColumnModel 中的 getColumnSelectionAllowed
返回:
columnSelectionAllowed 屬性
另請參見:
TableColumnModel.setColumnSelectionAllowed(boolean)

getSelectedColumns

public int[] getSelectedColumns()
返回包含選定列的陣列。如果 selectionModelnull,則返回一個空陣列。

指定者:
介面 TableColumnModel 中的 getSelectedColumns
返回:
包含選定列的陣列,如果沒有選定的列,或 selectionModelnull,則返回一個空陣列

getSelectedColumnCount

public int getSelectedColumnCount()
返回選定的列數。

指定者:
介面 TableColumnModel 中的 getSelectedColumnCount
返回:
選定的列數

addColumnModelListener

public void addColumnModelListener(TableColumnModelListener x)
添加表列模型事件的偵聽器。

指定者:
介面 TableColumnModel 中的 addColumnModelListener
參數:
x - 一個 TableColumnModelListener 物件

removeColumnModelListener

public void removeColumnModelListener(TableColumnModelListener x)
移除表列模型事件的偵聽器。

指定者:
介面 TableColumnModel 中的 removeColumnModelListener
參數:
x - 一個 TableColumnModelListener 物件

getColumnModelListeners

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

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

fireColumnAdded

protected void fireColumnAdded(TableColumnModelEvent e)
通知所有對此事件型別的通知感興趣的已註冊偵聽器。使用傳入此觸發方法的參數延後(lazily)創建事件實例。

參數:
e - 接收的事件
另請參見:
EventListenerList

fireColumnRemoved

protected void fireColumnRemoved(TableColumnModelEvent e)
通知所有對此事件型別的通知感興趣的已註冊偵聽器。使用傳入此觸發方法的參數延後創建事件實例。

參數:
e - 接收的事件
另請參見:
EventListenerList

fireColumnMoved

protected void fireColumnMoved(TableColumnModelEvent e)
通知所有對此事件型別的通知感興趣的已註冊偵聽器。使用傳入此觸發方法的參數延後創建事件實例。

參數:
e - 接收的事件
另請參見:
EventListenerList

fireColumnSelectionChanged

protected void fireColumnSelectionChanged(ListSelectionEvent e)
通知所有對此事件型別的通知感興趣的已註冊偵聽器。使用傳入此觸發方法的參數延後創建事件實例。

參數:
e - 接收的事件
另請參見:
EventListenerList

fireColumnMarginChanged

protected void fireColumnMarginChanged()
通知所有對此事件型別的通知感興趣的已註冊偵聽器。使用傳入此觸發方法的參數延後創建事件實例。

另請參見:
EventListenerList

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
返回當前已在此模型上註冊為 FooListener 的所有物件組成的陣列。FooListener 是用 addFooListener 方法註冊的。

可以使用 class 文字值(如 FooListener.class)來指定 listenerType 參數。例如,可以使用以下程式碼查詢 DefaultTableColumnModel m 的列模型偵聽器:

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

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

propertyChange

public void propertyChange(PropertyChangeEvent evt)
Property Change Listener 更改方法。用於追蹤列寬或首選列寬的更改。

指定者:
介面 PropertyChangeListener 中的 propertyChange
參數:
evt - PropertyChangeEvent

valueChanged

public void valueChanged(ListSelectionEvent e)
列選擇更改時轉發 ListSelectionEventsListSelectionListener

指定者:
介面 ListSelectionListener 中的 valueChanged
參數:
e - 更改事件

createSelectionModel

protected ListSelectionModel createSelectionModel()
創建新的預設列表選擇模型。


recalcWidthCache

protected void recalcWidthCache()
重新計算所有列的總寬度。更新 totalColumnWidth 屬性。


JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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