JavaTM 2 Platform
Standard Ed. 6

javax.swing.table
類別 TableColumn

java.lang.Object
  繼承者 javax.swing.table.TableColumn
所有已實作的介面:
Serializable

public class TableColumn
extends Object
implements Serializable

TableColumn 表示 JTable 中列的所有屬性,如寬度、大小可調整性、最小和最大寬度。此外,TableColumn 還為顯示和編輯此列中值的渲染器和編輯器提供了槽。

還可以基於每種型別,而不是每列來指定渲染器和編輯器,請參閱 JTable 類別中的 setDefaultRenderer 方法。此預設機制僅用於 TableColumn 中的渲染器(或編輯器)為 null 的情況。

TableColumn 存儲 JTable 中各列與 TableModel 中各列之間的連接。modelIndexTableModel 中的列,要獲得此列中單元格的資料值,可對 modelIndex 進行查詢。在視圖中移動列時,此 modelIndex 不更改。

註:某些實作可能假定所有 TableColumnModel 都是唯一的,因此我們建議不要多次將同一 TableColumn 實例添加到 TableColumnModel 中。要從模型中顯示具有相同資料列的 TableColumn,可創建具有相同 modelIndex 的新實例。

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

另請參見:
TableColumnModel, DefaultTableColumnModel, JTableHeader.getDefaultRenderer(), JTable.getDefaultRenderer(Class), JTable.getDefaultEditor(Class), JTable.getCellRenderer(int, int), JTable.getCellEditor(int, int)

欄位摘要
static String CELL_RENDERER_PROPERTY
          從 Java 2 platform v1.3 開始已過時。
protected  TableCellEditor cellEditor
          用於編輯列的資料單元格的編輯器。
protected  TableCellRenderer cellRenderer
          用於繪製列的資料單元格的渲染器。
static String COLUMN_WIDTH_PROPERTY
          從 Java 2 platform v1.3 開始已過時。
static String HEADER_RENDERER_PROPERTY
          從 Java 2 platform v1.3 開始已過時。
static String HEADER_VALUE_PROPERTY
          從 Java 2 platform v1.3 開始已過時。
protected  TableCellRenderer headerRenderer
          用於繪製列標題的渲染器。
protected  Object headerValue
          列的標題值。
protected  Object identifier
          根據 JTable 的繪製機制,此物件不會在內部使用;可在 TableColumn 中設置標識符,並將其作為標記和定位表列的可選方式。
protected  boolean isResizable
          如果為 true,則允許使用者調整列的大小;預設值為 true。
protected  int maxWidth
          列的最大寬度。
protected  int minWidth
          列的最小寬度。
protected  int modelIndex
          模型中的列索引,通過此 TableColumn 顯示該模型。
protected  int resizedPostingDisableCount
          已過時。 從 Java 2 platform v1.3 開始
protected  int width
          列的寬度。
 
建構子摘要
TableColumn()
          覆寫方法,它使用的預設模型索引為 0、預設寬度為 75、渲染器為 null、編輯器為 null
TableColumn(int modelIndex)
          覆寫方法,它使用的預設寬度為 75、渲染器為 null、編輯器為 null
TableColumn(int modelIndex, int width)
          覆寫方法,它使用的渲染器為 null、編輯器為 null
TableColumn(int modelIndex, int width, TableCellRenderer cellRenderer, TableCellEditor cellEditor)
          使用指定的模型索引、寬度、單元格渲染器、單元格編輯器創建並初始化 TableColumn 實例;所有 TableColumn 建構子都委託給此方法。
 
方法摘要
 void addPropertyChangeListener(PropertyChangeListener listener)
          向偵聽器列表中添加一個 PropertyChangeListener
protected  TableCellRenderer createDefaultHeaderRenderer()
          從 Java 2 platform v1.3 開始,TableColumn 建構子不再調用此方法。
 void disableResizedPosting()
          已過時。 從 Java 2 platform v1.3 開始
 void enableResizedPosting()
          已過時。 從 Java 2 platform v1.3 開始
 TableCellEditor getCellEditor()
          返回 JTable 用於編輯此列各值的 TableCellEditor
 TableCellRenderer getCellRenderer()
          返回 JTable 用於繪製此列各值的 TableCellRenderer
 TableCellRenderer getHeaderRenderer()
          返回用於繪製 TableColumn 標題的 TableCellRenderer
 Object getHeaderValue()
          返回用作標題渲染器值的 Object
 Object getIdentifier()
          返回此列的 identifier 物件。
 int getMaxWidth()
          返回 TableColumn 的最大寬度。
 int getMinWidth()
          返回 TableColumn 的最小寬度。
 int getModelIndex()
          返回此列的模型索引。
 int getPreferredWidth()
          返回 TableColumn 的首選寬度。
 PropertyChangeListener[] getPropertyChangeListeners()
          返回使用 addPropertyChangeListener() 添加到此 TableColumn 的所有 PropertyChangeListener 組成的陣列。
 boolean getResizable()
          如果允許使用者調整 TableColumn 的寬度,則返回 true;否則返回 false。
 int getWidth()
          返回該 TableColumn 的寬度。
 void removePropertyChangeListener(PropertyChangeListener listener)
          從偵聽器列表中移除一個 PropertyChangeListener
 void setCellEditor(TableCellEditor cellEditor)
          設置編輯此列中單元格時所用的編輯器。
 void setCellRenderer(TableCellRenderer cellRenderer)
          設置 JTable 用於繪製此列各值的 TableCellRenderer
 void setHeaderRenderer(TableCellRenderer headerRenderer)
          將用於繪製 TableColumn 的標題的 TableCellRenderer 設置為 headerRenderer
 void setHeaderValue(Object headerValue)
          設置 Object,將使用其字元串表示形式作為 headerRenderer 的值。
 void setIdentifier(Object identifier)
          將 TableColumn 的標識符設置為 anIdentifier
 void setMaxWidth(int maxWidth)
          將 TableColumn 的最大寬度設置為 maxWidth;如果 maxWidth 小於最小寬度,則設置為最小寬度。
 void setMinWidth(int minWidth)
          將 TableColumn 的最小寬度設置為 minWidth,如有必要,調整新的最小寬度以確保 0 <= minWidth <= maxWidth
 void setModelIndex(int modelIndex)
          設置此列的模型索引。
 void setPreferredWidth(int preferredWidth)
          將此列的首選寬度設置為 preferredWidth
 void setResizable(boolean isResizable)
          設置是否可以調整此列的大小。
 void setWidth(int width)
          不應使用此方法來設置 JTable 中列的寬度,而應使用 setPreferredWidth
 void sizeWidthToFit()
          調整 TableColumn 的大小,以適合其標題單元格的寬度。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

COLUMN_WIDTH_PROPERTY

public static final String COLUMN_WIDTH_PROPERTY
從 Java 2 platform v1.3 開始已過時。請使用 string 文字值來標識屬性。

另請參見:
常數欄位值

HEADER_VALUE_PROPERTY

public static final String HEADER_VALUE_PROPERTY
從 Java 2 platform v1.3 開始已過時。請使用 string 文字值來標識屬性。

另請參見:
常數欄位值

HEADER_RENDERER_PROPERTY

public static final String HEADER_RENDERER_PROPERTY
從 Java 2 platform v1.3 開始已過時。請使用 string 文字值來標識屬性。

另請參見:
常數欄位值

CELL_RENDERER_PROPERTY

public static final String CELL_RENDERER_PROPERTY
從 Java 2 platform v1.3 開始已過時。請使用 string 文字值來標識屬性。

另請參見:
常數欄位值

modelIndex

protected int modelIndex
模型中的列索引,通過此 TableColumn 顯示該模型。在視圖中移動列時,modelIndex 保持不變。


identifier

protected Object identifier
根據 JTable 的繪製機制,此物件不會在內部使用;可在 TableColumn 中設置標識符,並將其作為標記和定位表列的可選方式。table 套件只修改或調用這些標識符物件中的 equals 方法,該方法用於 DefaultTableColumnModel 中的 getColumnIndex() 方法中。


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 platform v1.3 開始
在以前的版本中不使用此欄位,並且當前也沒有計劃以後支持它。

建構子詳細資訊

TableColumn

public TableColumn()
覆寫方法,它使用的預設模型索引為 0、預設寬度為 75、渲染器為 null、編輯器為 null。此方法用於進行序列化。

另請參見:
TableColumn(int, int, TableCellRenderer, TableCellEditor)

TableColumn

public TableColumn(int modelIndex)
覆寫方法,它使用的預設寬度為 75、渲染器為 null、編輯器為 null

另請參見:
TableColumn(int, int, TableCellRenderer, TableCellEditor)

TableColumn

public TableColumn(int modelIndex,
                   int width)
覆寫方法,它使用的渲染器為 null、編輯器為 null

另請參見:
TableColumn(int, int, TableCellRenderer, TableCellEditor)

TableColumn

public TableColumn(int modelIndex,
                   int width,
                   TableCellRenderer cellRenderer,
                   TableCellEditor cellEditor)
使用指定的模型索引、寬度、單元格渲染器、單元格編輯器創建並初始化 TableColumn 實例;所有 TableColumn 建構子都委託給此方法。width 的值用於初始寬度和首選寬度;如果 width 為負,則將它們設置為 0。將最小寬度設置為 15,如果初始寬度更小,則將最小寬度設置為初始寬度的值。

cellRenderercellEditor 參數為 null 時,由 JTablegetDefaultRenderergetDefaultEditor 方法提供的預設值分別用於根據此列中資料的型別來提供預設的渲染器和編輯器。通過覆寫 JTable 中的 getCellRenderer 方法可迴避這種以列為中心的呈現策略。

參數:
modelIndex - 模型中列的索引,該模型提供表中此列的資料;即使列在視圖中重新排序,該模型索引依然不變
width - 此列的首選寬度和初始寬度
cellRenderer - 用於呈現此列中值的物件
cellEditor - 用於編輯此列中值的物件
另請參見:
getMinWidth(), JTable.getDefaultRenderer(Class), JTable.getDefaultEditor(Class), JTable.getCellRenderer(int, int), JTable.getCellEditor(int, int)
方法詳細資訊

setModelIndex

public void setModelIndex(int modelIndex)
設置此列的模型索引。模型索引是模型中此 TableColumn 將要顯示的列的索引。TableColumn 在視圖中移動時,該模型索引保持不變。

參數:
modelIndex - 新的 modelIndex

getModelIndex

public int getModelIndex()
返回此列的模型索引。

返回:
modelIndex 屬性

setIdentifier

public void setIdentifier(Object identifier)
TableColumn 的標識符設置為 anIdentifier

註:JTable 不使用標識符,它們只是為了便於外部標記和標識列的位置。

參數:
identifier - 此列的標識符
另請參見:
getIdentifier()

getIdentifier

public Object getIdentifier()
返回此列的 identifier 物件。注意,JTable 不使用標識符,它們只是為了便於外部使用。如果 identifiernull,則 getIdentifier() 返回 getHeaderValue 作為預設值。

返回:
identifier 屬性
另請參見:
setIdentifier(java.lang.Object)

setHeaderValue

public void setHeaderValue(Object headerValue)
設置 Object,將使用其字元串表示形式作為 headerRenderer 的值。創建 TableColumn 時,預設的 headerValuenull

參數:
headerValue - 新的 headerValue
另請參見:
getHeaderValue()

getHeaderValue

public Object getHeaderValue()
返回用作標題渲染器值的 Object

返回:
headerValue 屬性
另請參見:
setHeaderValue(java.lang.Object)

setHeaderRenderer

public void setHeaderRenderer(TableCellRenderer headerRenderer)
將用於繪製 TableColumn 的標題的 TableCellRenderer 設置為 headerRenderer

標題渲染器負責呈現排序指示符。如果正在使用排序並指定了渲染器,則此渲染器必須呈現排序指示。

參數:
headerRenderer - 新的 headerRenderer
另請參見:
getHeaderRenderer()

getHeaderRenderer

public TableCellRenderer getHeaderRenderer()
返回用於繪製 TableColumn 標題的 TableCellRendererheaderRenderernull 時,JTableHeader 使用其 defaultRendererheaderRenderer 的預設值為 null

返回:
headerRenderer 屬性
另請參見:
setHeaderRenderer(javax.swing.table.TableCellRenderer), setHeaderValue(java.lang.Object), JTableHeader.getDefaultRenderer()

setCellRenderer

public void setCellRenderer(TableCellRenderer cellRenderer)
設置 JTable 用於繪製此列各值的 TableCellRenderer

參數:
cellRenderer - 新的 cellRenderer
另請參見:
getCellRenderer()

getCellRenderer

public TableCellRenderer getCellRenderer()
返回 JTable 用於繪製此列各值的 TableCellRenderer。列的 cellRenderer 不僅控制著該列的可視外觀,而且還用於解釋 TableModel 所提供的值物件。cellRenderernull 時,JTable 根據該列中單元格的類別來使用預設的編輯器。cellRenderer 的預設值為 null

返回:
cellRenderer 屬性
另請參見:
setCellRenderer(javax.swing.table.TableCellRenderer), JTable.setDefaultRenderer(java.lang.Class, javax.swing.table.TableCellRenderer)

setCellEditor

public void setCellEditor(TableCellEditor cellEditor)
設置編輯此列中單元格時所用的編輯器。

參數:
cellEditor - 新的 cellEditor
另請參見:
getCellEditor()

getCellEditor

public TableCellEditor getCellEditor()
返回 JTable 用於編輯此列各值的 TableCellEditorcellEditornull 時,JTable 根據該列中單元格的類別來使用預設的渲染器。cellEditor 的預設值為 null

返回:
cellEditor 屬性
另請參見:
setCellEditor(javax.swing.table.TableCellEditor), JTable.setDefaultEditor(java.lang.Class, javax.swing.table.TableCellEditor)

setWidth

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

public void setPreferredWidth(int preferredWidth)
將此列的首選寬度設置為 preferredWidth。如果 preferredWidth 超出最小或最大寬度,則將其調整為合適的界限值。

有關如何根據 preferredWidth 計算 JTable(和 JTableHeader)中列寬度的細節,請參見 JTable 中的 doLayout 方法。

參數:
preferredWidth - 新的首選寬度
另請參見:
getPreferredWidth(), JTable.doLayout()

getPreferredWidth

public int getPreferredWidth()
返回 TableColumn 的首選寬度。預設首選寬度為 75。

返回:
preferredWidth 屬性
另請參見:
setPreferredWidth(int)

setMinWidth

public void setMinWidth(int minWidth)
TableColumn 的最小寬度設置為 minWidth,如有必要,調整新的最小寬度以確保 0 <= minWidth <= maxWidth。例如,如果 minWidth 參數為負,則此方法將 minWidth 屬性設置為 0。

如果 widthpreferredWidth 屬性的值小於新的最小寬度,則此方法將該屬性設置為新的最小寬度。

參數:
minWidth - 新的最小寬度
另請參見:
getMinWidth(), setPreferredWidth(int), setMaxWidth(int)

getMinWidth

public int getMinWidth()
返回 TableColumn 的最小寬度。不能通過使用者或程式的方式將 TableColumn 的寬度設置為小於此值。

返回:
minWidth 屬性
另請參見:
setMinWidth(int), TableColumn(int, int, TableCellRenderer, TableCellEditor)

setMaxWidth

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

public void setResizable(boolean isResizable)
設置是否可以調整此列的大小。

參數:
isResizable - 如果為 true,則允許調整大小;否則為 false
另請參見:
getResizable()

getResizable

public boolean getResizable()
如果允許使用者調整 TableColumn 的寬度,則返回 true;否則返回 false。無論此設置是什麼,都可以通過程式方式更改寬度。預設值為 true。

返回:
isResizable 屬性
另請參見:
setResizable(boolean)

sizeWidthToFit

public void sizeWidthToFit()
調整 TableColumn 的大小,以適合其標題單元格的寬度。如果標題渲染器為 null(預設情況如此),則此方法不執行任何操作。否則,此方法將此列的最小、最大和首選寬度設置為標題渲染器所傳遞的 Component 的最小、最大和首選大小。此 TableColumn 的瞬態 "width" 屬性也設置為首選寬度。注意,table 套件不會在內部使用此方法。

另請參見:
setPreferredWidth(int)

disableResizedPosting

@Deprecated
public void disableResizedPosting()
已過時。 從 Java 2 platform v1.3 開始

在以前的版本中不使用此欄位,並且當前也沒有計劃以後支持它。


enableResizedPosting

@Deprecated
public void enableResizedPosting()
已過時。 從 Java 2 platform v1.3 開始

在以前的版本中不使用此欄位,並且當前也沒有計劃以後支持它它。


addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
向偵聽器列表中添加一個 PropertyChangeListener。該偵聽器是為所有屬性註冊的。

回應對當前元件上 setFontsetBackgroundsetForeground 的顯式調用時,將觸發一個 PropertyChangeEvent。注意,如果當前元件將繼承其容器的前景、背景或字體,則在回應所繼承屬性中的更改時不會觸發任何事件。

參數:
listener - 要添加的偵聽器

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 platform v1.3 開始,TableColumn 建構子不再調用此方法。以前 TableColumn 使用此方法來創建預設的標題渲染器。從 Java 2 platform v1.3 開始,預設的標題渲染器為 nullJTableHeader 現在提供其自己的共享預設渲染器,就像 JTable 為其單元格渲染器所提供的。

返回:
預設的標題渲染器
另請參見:
JTableHeader.createDefaultRenderer()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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