JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 SortingFocusTraversalPolicy

java.lang.Object
  繼承者 java.awt.FocusTraversalPolicy
      繼承者 javax.swing.InternalFrameFocusTraversalPolicy
          繼承者 javax.swing.SortingFocusTraversalPolicy
直接已知子類別:
LayoutFocusTraversalPolicy

public class SortingFocusTraversalPolicy
extends InternalFrameFocusTraversalPolicy

通過對焦點遍歷循環的 Components 按給定 Comparator 排序確定遍歷順序的 FocusTraversalPolicy。不可視和不可顯示的 Component 層次結構部分將不被包含。

預設情況下,SortingFocusTraversalPolicy 會隱式將焦點傳輸給下一個循環。也就是說,在進行正常焦點遍歷期間,在焦點循環根後面遍歷的 Component 將成為焦點循環根預設擁有焦點的 Component。可以使用 setImplicitDownCycleTraversal 方法禁用此行為。

預設情況下,只有 Component 是可視的、可顯示的、被啟用的和可聚焦的時候,此類別的方法才返回此 Component。子類別可以通過覆寫 accept 方法修改此行為。

此策略需要考慮焦點遍歷策略提供者。當搜尋第一個/最後一個/下一個/上一個 Component 時,如果遇到焦點遍歷策略提供者,則使用該焦點遍歷策略來執行搜尋操作。

從以下版本開始:
1.4
另請參見:
Comparator

建構子摘要
protected SortingFocusTraversalPolicy()
          建構一個不帶 Comparator 的 SortingFocusTraversalPolicy。
  SortingFocusTraversalPolicy(Comparator<? super Component> comparator)
          建構具有指定 Comparator 的 SortingFocusTraversalPolicy。
 
方法摘要
protected  boolean accept(Component aComponent)
          確定是否可以接受選擇某個 Component 作為新的焦點擁有者。
protected  Comparator<? super Component> getComparator()
          返回將用於對焦點遍歷循環中的 Components 排序的 Comparator。
 Component getComponentAfter(Container aContainer, Component aComponent)
          返回應該接收 aComponent 後面的焦點的 Component。
 Component getComponentBefore(Container aContainer, Component aComponent)
          返回應該接收 aComponent 前面的焦點的 Component。
 Component getDefaultComponent(Container aContainer)
          返回預設擁有焦點的 Component。
 Component getFirstComponent(Container aContainer)
          返回遍歷循環中的第一個 Component。
 boolean getImplicitDownCycleTraversal()
          返回對此 SortingFocusTraversalPolicy 是否隱式將焦點傳輸給下一個循環的判斷。
 Component getLastComponent(Container aContainer)
          返回遍歷循環中的最後一個 Component。
protected  void setComparator(Comparator<? super Component> comparator)
          設置將用於對焦點遍歷循環中的 Components 排序的 Comparator。
 void setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
          設置此 SortingFocusTraversalPolicy 是否隱式將焦點傳輸給下一個循環。
 
從類別 javax.swing.InternalFrameFocusTraversalPolicy 繼承的方法
getInitialComponent
 
從類別 java.awt.FocusTraversalPolicy 繼承的方法
getInitialComponent
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

SortingFocusTraversalPolicy

protected SortingFocusTraversalPolicy()
建構一個不帶 Comparator 的 SortingFocusTraversalPolicy。在焦點循環根或 KeyboardFocusManager 上安裝此 FocusTraversalPolicy 之前,子類別必須用 setComparator 設置 Comparator。


SortingFocusTraversalPolicy

public SortingFocusTraversalPolicy(Comparator<? super Component> comparator)
建構具有指定 Comparator 的 SortingFocusTraversalPolicy。

方法詳細資訊

getComponentAfter

public Component getComponentAfter(Container aContainer,
                                   Component aComponent)
返回應該接收 aComponent 後面的焦點的 Component。aContainer 必須是 aComponent 的焦點循環根,或者是一個焦點遍歷策略提供者。

預設情況下,SortingFocusTraversalPolicy 會隱式將焦點傳輸給下一個循環。也就是說,在進行正常焦點遍歷期間,在焦點循環根後面遍歷的 Component 將成為焦點循環根預設擁有焦點的 Component。可以使用 setImplicitDownCycleTraversal 方法禁用此行為。

如果 aContainer 是焦點遍歷策略提供者,則總是將焦點傳輸到下一個循環。

指定者:
類別 FocusTraversalPolicy 中的 getComponentAfter
參數:
aContainer - aComponent 的焦點循環根,或焦點遍歷策略提供者
aComponent - aContainer 的子元件(可能是間接的),或 aContainer 自身
返回:
應該接收 aComponent 之後的焦點的 Component,如果無法找到合適的 Component,則返回 null
拋出:
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦點循環根或焦點遍歷策略提供者,或者 aContainer 或 aComponent 為 null

getComponentBefore

public Component getComponentBefore(Container aContainer,
                                    Component aComponent)
返回應該接收 aComponent 前面的焦點的 Component。aContainer 必須是 aComponent 的焦點循環根,或者是一個焦點遍歷策略提供者。

預設情況下,SortingFocusTraversalPolicy 會隱式將焦點傳輸給下一個循環。也就是說,在進行正常焦點遍歷期間,在焦點循環根後面遍歷的 Component 將成為焦點循環根預設擁有焦點的 Component。可以使用 setImplicitDownCycleTraversal 方法禁用此行為。

如果 aContainer 是焦點遍歷策略提供者,則總是將焦點傳輸到下一個循環。

指定者:
類別 FocusTraversalPolicy 中的 getComponentBefore
參數:
aContainer - aComponent 的焦點循環根,或焦點遍歷策略提供者
aComponent - aContainer 的子元件(可能是間接的),或 aContainer 自身
返回:
應該接收 aComponent 之前的焦點的 Component,如果無法找到合適的 Component,則返回 null
拋出:
IllegalArgumentException - 如果 aContainer 不是 aComponent 的焦點循環根或焦點遍歷策略提供者,或者 aContainer 或 aComponent 為 null

getFirstComponent

public Component getFirstComponent(Container aContainer)
返回遍歷循環中的第一個 Component。在進行正向遍歷時,可用此方法確定擁有焦點的下一個 Component。

指定者:
類別 FocusTraversalPolicy 中的 getFirstComponent
參數:
aContainer - 要返回其第一個 Component 的 aComponent 的焦點循環根,或焦點遍歷策略提供者
返回:
aContainer 的遍歷循環中的第一個 Component,如果無法找到合適的 Component,則返回 null
拋出:
IllegalArgumentException - 如果 aContainer 為 null

getLastComponent

public Component getLastComponent(Container aContainer)
返回遍歷循環中的最後一個 Component。在進行反向遍歷時,可用此方法確定擁有焦點的下一個 Component。

指定者:
類別 FocusTraversalPolicy 中的 getLastComponent
參數:
aContainer - 要返回其最後一個 Component 的 aComponent 的焦點循環根,或焦點遍歷策略提供者
返回:
aContainer 的遍歷循環中的最後一個 Component,如果無法找到合適的 Component,則返回 null
拋出:
IllegalArgumentException - 如果 aContainer 為 null

getDefaultComponent

public Component getDefaultComponent(Container aContainer)
返回預設擁有焦點的 Component。在向下遍歷到以 aContainer 為根的新焦點遍歷循環時,此 Component 將是第一個接受焦點的 Component。此方法的預設實作將返回與 getFirstComponent 相同的 Component。

指定者:
類別 FocusTraversalPolicy 中的 getDefaultComponent
參數:
aContainer - 將返回其預設 Component 的 aComponent 的焦點循環根或焦點遍歷策略提供者
返回:
aContainer 的遍歷循環中的預設 Component,如果沒有找到合適的 Component,則返回 null
拋出:
IllegalArgumentException - 如果 aContainer 為 null
另請參見:
getFirstComponent(java.awt.Container)

setImplicitDownCycleTraversal

public void setImplicitDownCycleTraversal(boolean implicitDownCycleTraversal)
設置此 SortingFocusTraversalPolicy 是否隱式將焦點傳輸給下一個循環。如果返回 true,則在進行正常焦點遍歷期間,在焦點循環根後面遍歷的 Component 將成為焦點循環根預設擁有焦點的 Component。如果返回 false,則將遍歷根植在指定焦點循環上的焦點遍歷循環中的下一個 Component。此屬性的預設值為 true

參數:
implicitDownCycleTraversal - 此 SortingFocusTraversalPolicy 是否隱式將焦點傳輸給下一個循環
另請參見:
getImplicitDownCycleTraversal(), getFirstComponent(java.awt.Container)

getImplicitDownCycleTraversal

public boolean getImplicitDownCycleTraversal()
返回對此 SortingFocusTraversalPolicy 是否隱式將焦點傳輸給下一個循環的判斷。如果返回 true,則在進行正常焦點遍歷期間,在焦點循環根後面遍歷的 Component 將成為焦點循環根預設擁有焦點的 Component。如果返回 false,則將遍歷根植在指定焦點循環上的焦點遍歷循環中的下一個 Component。

返回:
此 SortingFocusTraversalPolicy 是否隱式將焦點傳輸給下一個循環
另請參見:
setImplicitDownCycleTraversal(boolean), getFirstComponent(java.awt.Container)

setComparator

protected void setComparator(Comparator<? super Component> comparator)
設置將用於對焦點遍歷循環中的 Components 排序的 Comparator。

參數:
comparator - 將用於排序的 Comparator

getComparator

protected Comparator<? super Component> getComparator()
返回將用於對焦點遍歷循環中的 Components 排序的 Comparator。

返回:
將用於排序的 Comparator

accept

protected boolean accept(Component aComponent)
確定是否可以接受選擇某個 Component 作為新的焦點擁有者。預設情況下,當且僅當 Component 是可視的、可顯示的、被啟用的和可聚焦的時候,此方法才接受此 Component。

參數:
aComponent - 將測試其是否適合作為焦點擁有者的 Component
返回:
如果 aComponent 是可視的、可顯示的、被啟用的和可聚焦的,則返回 true;否則返回 false

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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