|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.tree.DefaultTreeSelectionModel
public class DefaultTreeSelectionModel
TreeSelectionModel 的預設實作。每當 selection 中的路徑(不是行)發生更改時,偵聽器就會獲得通知。為了能夠追蹤行的更改,您可能希望獲得一個偵聽器,用於階層樹上的擴展事件,並從該位置測試更改。
從所有更新選擇路徑的方法中調用 resetRowSelection。如果對這些方法中的任何方法創建子類別來過濾允許選擇的內容,並且沒有通知父級類別,請確定並通知 resetRowSelection
。
警告:此類別的序列化物件將與以後的 Swing 版本不相容。當前的序列化支持適用於短期存儲或運行相同 Swing 版本的應用程序之間的 RMI。從 1.4 版本開始,已在 java.beans
套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder
。
JTree
欄位摘要 | |
---|---|
protected SwingPropertyChangeSupport |
changeSupport
用於接收通知的註冊偵聽器。 |
protected int |
leadIndex
selection 中前導路徑的索引。 |
protected TreePath |
leadPath
添加的最後一條路徑。 |
protected int |
leadRow
前導行。 |
protected EventListenerList |
listenerList
事件偵聽器列表。 |
protected DefaultListSelectionModel |
listSelectionModel
維護列表選擇模型的句柄。 |
protected RowMapper |
rowMapper
提供給定路徑的行。 |
protected TreePath[] |
selection
當前選擇的路徑。 |
static String |
SELECTION_MODE_PROPERTY
selectionMode 的屬性名稱。 |
protected int |
selectionMode
用於 selection 的網要,將是 SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION 或 DISCONTIGUOUS_TREE_SELECTION。 |
從介面 javax.swing.tree.TreeSelectionModel 繼承的欄位 |
---|
CONTIGUOUS_TREE_SELECTION, DISCONTIGUOUS_TREE_SELECTION, SINGLE_TREE_SELECTION |
建構子摘要 | |
---|---|
DefaultTreeSelectionModel()
使用 DISCONTIGUOUS_TREE_SELECTION 的選擇網要創建空的 DefaultTreeSelectionModel 新實例。 |
方法摘要 | ||
---|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener)
將 PropertyChangeListener 添加到偵聽器列表。 |
|
void |
addSelectionPath(TreePath path)
將路徑添加到當前的 selection 中。 |
|
void |
addSelectionPaths(TreePath[] paths)
向當前的 selection 中添加路徑。 |
|
void |
addTreeSelectionListener(TreeSelectionListener x)
向每次已選的 TreePaths 集合發生更改時都會得到通知的偵聽器列表添加 x。 |
|
protected boolean |
arePathsContiguous(TreePath[] paths)
如果路徑是連續的,或者此物件沒有 RowMapper,則返回 true。 |
|
protected boolean |
canPathsBeAdded(TreePath[] paths)
用於測試是否可以添加特定的 TreePath 集合。 |
|
protected boolean |
canPathsBeRemoved(TreePath[] paths)
如果可以移除該路徑而不中斷該模型的連續性,則返回 true。 |
|
void |
clearSelection()
清空當前的 selection。 |
|
Object |
clone()
返回具有相同 selection 的此物件的副本。 |
|
protected void |
fireValueChanged(TreeSelectionEvent e)
通知已註冊此物件上的階層樹選擇事件的所有偵聽器。 |
|
TreePath |
getLeadSelectionPath()
返回添加的最後一條路徑。 |
|
int |
getLeadSelectionRow()
返回 lead selection 索引。 |
|
|
getListeners(Class<T> listenerType)
返回當前已在此模型上註冊為 FooListener 的所有物件組成的陣列。 |
|
int |
getMaxSelectionRow()
返回從 RowMapper 獲取的已選擇的 TreePath 的當前集合中的最大值。 |
|
int |
getMinSelectionRow()
返回從 RowMapper 獲取的已選擇的 TreePath 的當前集合中的最小值。 |
|
PropertyChangeListener[] |
getPropertyChangeListeners()
返回此 DefaultTreeSelectionModel 上註冊的所有屬性更改偵聽器組成的陣列。 |
|
RowMapper |
getRowMapper()
返回能夠將 TreePath 映射到行的 RowMapper 實例。 |
|
int |
getSelectionCount()
返回選擇的路徑數。 |
|
int |
getSelectionMode()
返回選擇網要,它是 SINGLE_TREE_SELECTION 、DISCONTIGUOUS_TREE_SELECTION 或 CONTIGUOUS_TREE_SELECTION 之一。 |
|
TreePath |
getSelectionPath()
返回 selection 中的第一個路徑。 |
|
TreePath[] |
getSelectionPaths()
返回 selection 中的路徑。 |
|
int[] |
getSelectionRows()
返回當前已選的所有行。 |
|
TreeSelectionListener[] |
getTreeSelectionListeners()
返回已在此模型上註冊的所有階層樹選擇偵聽器組成的陣列。 |
|
protected void |
insureRowContinuity()
確保當前選擇的 TreePath 對於當前選擇網要是有效的。 |
|
protected void |
insureUniqueness()
此方法已過時,並且其實作現在是一個 noop。 |
|
boolean |
isPathSelected(TreePath path)
如果當前選擇了路徑 path ,則返回 true。 |
|
boolean |
isRowSelected(int row)
如果選擇了由 row 標識的行,則返回 true。 |
|
boolean |
isSelectionEmpty()
如果 selection 當前為空,則返回 true。 |
|
protected void |
notifyPathChange(Vector<javax.swing.tree.PathPlaceHolder> changedPaths,
TreePath oldLeadSelection)
通知偵聽器路徑中的更改。 |
|
void |
removePropertyChangeListener(PropertyChangeListener listener)
從偵聽器列表移除 PropertyChangeListener。 |
|
void |
removeSelectionPath(TreePath path)
從 selection 中移除路徑。 |
|
void |
removeSelectionPaths(TreePath[] paths)
從 selection 中移除路徑。 |
|
void |
removeTreeSelectionListener(TreeSelectionListener x)
從每次已選的 TreePaths 集合發生更改時都會得到通知的偵聽器列表中移除 x。 |
|
void |
resetRowSelection()
更新此物件從 TreePath 到行的映射關係。 |
|
void |
setRowMapper(RowMapper newMapper)
設置 RowMapper 實例。 |
|
void |
setSelectionMode(int mode)
設置選擇網要,它必須是 SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION 或 DISCONTIGUOUS_TREE_SELECTION 之一。 |
|
void |
setSelectionPath(TreePath path)
為該選擇設置路徑。 |
|
void |
setSelectionPaths(TreePath[] pPaths)
為該選擇設置路徑中的路徑。 |
|
String |
toString()
返回顯示並標識此物件屬性的字元串。 |
|
protected void |
updateLeadIndex()
更新 leadIndex 實例變數。 |
從類別 java.lang.Object 繼承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final String SELECTION_MODE_PROPERTY
protected SwingPropertyChangeSupport changeSupport
protected TreePath[] selection
protected EventListenerList listenerList
protected transient RowMapper rowMapper
protected DefaultListSelectionModel listSelectionModel
protected int selectionMode
protected TreePath leadPath
protected int leadIndex
protected int leadRow
建構子詳細資訊 |
---|
public DefaultTreeSelectionModel()
方法詳細資訊 |
---|
public void setRowMapper(RowMapper newMapper)
TreeSelectionModel
中的 setRowMapper
public RowMapper getRowMapper()
TreeSelectionModel
中的 getRowMapper
public void setSelectionMode(int mode)
DISCONTIGUOUS_TREE_SELECTION
。
如果當前的 selection 對新網要無效,這可以更改該 selection。例如,如果將網要更改為 SINGLE_TREE_SELECTION
時選中三個 TreePath,則只有一個 TreePath 仍然被選中。由特定的實作來決定保留選定哪一個 TreePath。
將該網要設置為定義的型別以外的其他型別,將導致該網要變成 DISCONTIGUOUS_TREE_SELECTION
。
TreeSelectionModel
中的 setSelectionMode
public int getSelectionMode()
SINGLE_TREE_SELECTION
、DISCONTIGUOUS_TREE_SELECTION
或 CONTIGUOUS_TREE_SELECTION
之一。
TreeSelectionModel
中的 getSelectionMode
public void setSelectionPath(TreePath path)
path
為 null,則這與調用 clearSelection
具有相同的效果。
TreeSelectionModel
中的 setSelectionPath
path
- 要選擇的新路徑public void setSelectionPaths(TreePath[] pPaths)
如果 paths
為 null,則這與調用 clearSelection
具有相同的效果。
將前導路徑設置為 pPaths
中的最後一個路徑。
如果選擇網要為 CONTIGUOUS_TREE_SELECTION
,並且添加新路徑會使該選擇不連續,則將該選擇重新設置為 paths
中的第一個 TreePath。
TreeSelectionModel
中的 setSelectionPaths
pPaths
- 新的選擇public void addSelectionPath(TreePath path)
path
為 null,則通知無效。
TreeSelectionModel
中的 addSelectionPath
path
- 添加到當前 selection 中的新路徑public void addSelectionPaths(TreePath[] paths)
paths
為 null,則此方法無效。
將前導路徑設置為 paths
中的最後元素。
如果選擇網要為 CONTIGUOUS_TREE_SELECTION
,則添加新的路徑會使選擇不連續。那麼可導致兩種結果:如果 paths
中的 TreePaths 是連續的,則該選擇會變為這些 TreePaths,相反,如果 TreePaths 不是連續的,則該選擇會變為 paths
中的第一個 TreePath。
TreeSelectionModel
中的 addSelectionPaths
paths
- 添加到當前 selection 的新路徑public void removeSelectionPath(TreePath path)
path
為 null,則此方法無效。
TreeSelectionModel
中的 removeSelectionPath
path
- 要從選擇中移除的路徑public void removeSelectionPaths(TreePath[] paths)
paths
為 null,則此方法無效。
TreeSelectionModel
中的 removeSelectionPaths
paths
- 從 selection 中移除的路徑public TreePath getSelectionPath()
TreeSelectionModel
中的 getSelectionPath
public TreePath[] getSelectionPaths()
TreeSelectionModel
中的 getSelectionPaths
public int getSelectionCount()
TreeSelectionModel
中的 getSelectionCount
public boolean isPathSelected(TreePath path)
path
,則返回 true。
TreeSelectionModel
中的 isPathSelected
public boolean isSelectionEmpty()
TreeSelectionModel
中的 isSelectionEmpty
public void clearSelection()
TreeSelectionModel
中的 clearSelection
public void addTreeSelectionListener(TreeSelectionListener x)
TreeSelectionModel
中的 addTreeSelectionListener
x
- 要添加的新偵聽器public void removeTreeSelectionListener(TreeSelectionListener x)
TreeSelectionModel
中的 removeTreeSelectionListener
x
- 要移除的偵聽器public TreeSelectionListener[] getTreeSelectionListeners()
TreeSelectionListener
,如果當前沒有已註冊的階層樹選擇偵聽器,則返回一個空陣列。addTreeSelectionListener(javax.swing.event.TreeSelectionListener)
,
removeTreeSelectionListener(javax.swing.event.TreeSelectionListener)
protected void fireValueChanged(TreeSelectionEvent e)
addTreeSelectionListener(javax.swing.event.TreeSelectionListener)
,
EventListenerList
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
FooListener
的所有物件組成的陣列。FooListener
是用 addFooListener
方法註冊的。
可以使用 class 文字值來指定 listenerType
參數,如 FooListener.class
。例如,可以通過下面的程式碼查詢 DefaultTreeSelectionModel
m
的階層樹選擇偵聽器:
TreeSelectionListener[] tsls = (TreeSelectionListener[])(m.getListeners(TreeSelectionListener.class));如果不存在這樣的偵聽器,則此方法將返回一個空陣列。
listenerType
- 所請求偵聽器的型別;該參數應該指定一個從 java.util.EventListener
繼承的介面
FooListener
的所有物件的陣列,如果沒有添加這樣的偵聽器,則返回一個空陣列
ClassCastException
- 如果 listenerType
沒有指定實作 java.util.EventListener
的類別或介面getTreeSelectionListeners()
,
getPropertyChangeListeners()
public int[] getSelectionRows()
TreeSelectionModel
中的 getSelectionRows
public int getMinSelectionRow()
TreeSelectionModel
中的 getMinSelectionRow
public int getMaxSelectionRow()
TreeSelectionModel
中的 getMaxSelectionRow
public boolean isRowSelected(int row)
row
標識的行,則返回 true。
TreeSelectionModel
中的 isRowSelected
public void resetRowSelection()
通常不必調用此方法,JTree 及其相關的偵聽器將為您調用它。如果您正在實作自已的 View 類別,則必須調用該方法。
這將調用 insureRowContinuity
,以確保當前選擇的 TreePath 基於選擇網要仍然有效。
TreeSelectionModel
中的 resetRowSelection
public int getLeadSelectionRow()
TreeSelectionModel
中的 getLeadSelectionRow
public TreePath getLeadSelectionPath()
TreeSelectionModel
中的 getLeadSelectionPath
public void addPropertyChangeListener(PropertyChangeListener listener)
當選擇網要更改時,將觸發 PropertyChangeEvent。
TreeSelectionModel
中的 addPropertyChangeListener
listener
- 要添加的 PropertyChangeListenerpublic void removePropertyChangeListener(PropertyChangeListener listener)
TreeSelectionModel
中的 removePropertyChangeListener
listener
- 要移除的 PropertyChangeListenerpublic PropertyChangeListener[] getPropertyChangeListeners()
DefaultTreeSelectionModel
上註冊的所有屬性更改偵聽器組成的陣列。
PropertyChangeListener
,如果當前沒有註冊的屬性更改偵聽器,則返回一個空陣列addPropertyChangeListener(java.beans.PropertyChangeListener)
,
removePropertyChangeListener(java.beans.PropertyChangeListener)
protected void insureRowContinuity()
TreePath
對於當前選擇網要是有效的。如果選擇網要為 CONTIGUOUS_TREE_SELECTION
,並且 RowMapper
存在,則此方法將確保所有的行是連續的,即:排序時,所有的行都是有順序的,並且沒有間隙。如果選擇不是連續的,則重設該選擇,以包含在排序時連續行的第一個設置。
如果選擇網要為 SINGLE_TREE_SELECTION
,並且選擇了多個 TreePath,則重設該選擇,以包含當前選擇的第一個路徑。
protected boolean arePathsContiguous(TreePath[] paths)
protected boolean canPathsBeAdded(TreePath[] paths)
TreePath
集合。如果 paths
為 null(或空),或此物件沒有 RowMapper,或當前沒有選擇任何內容,或選擇網要為 DISCONTIGUOUS_TREE_SELECTION
,或將該路徑添加到當前的 selection 仍得到 TreePath
的連續集,則此方法返回 true。
protected boolean canPathsBeRemoved(TreePath[] paths)
protected void notifyPathChange(Vector<javax.swing.tree.PathPlaceHolder> changedPaths, TreePath oldLeadSelection)
protected void updateLeadIndex()
protected void insureUniqueness()
public String toString()
Object
中的 toString
public Object clone() throws CloneNotSupportedException
Object
中的 clone
CloneNotSupportedException
- 此類別的實例從不拋出Cloneable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。