JavaTM 2 Platform
Standard Ed. 6

java.awt
類別 Container

java.lang.Object
  繼承者 java.awt.Component
      繼承者 java.awt.Container
所有已實作的介面:
ImageObserver, MenuContainer, Serializable
直接已知子類別:
BasicSplitPaneDivider, CellRendererPane, DefaultTreeCellEditor.EditorContainer, JComponent, Panel, ScrollPane, Window

public class Container
extends Component

一般的 Abstract Window Toolkit(AWT) 容器物件是一個可包含其他 AWT 元件的元件。

添加到容器中的元件放在一個列表中。列表的順序將定義元件在容器內的正向堆疊(stack)空間順序。如果將元件添加到容器中時未指定索引,則該索引將被添加到列表尾部(此後它位於堆疊(stack)空間順序的底部)。

:有關焦點子系統的詳細資訊,請參閱 The Java TutorialHow to Use the Focus Subsystem 一節,要獲得更多的資訊,請參閱 Focus Specification

從以下版本開始:
JDK1.0
另請參見:
add(java.awt.Component, int), getComponent(int), LayoutManager, 序列化表格

巢狀類別摘要
protected  class Container.AccessibleAWTContainer
          用於對可存取性提供預設支持的 Container 內部類別。
 
從類別 java.awt.Component 繼承的巢狀類別/介面
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
欄位摘要
 
從類別 java.awt.Component 繼承的欄位
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
從介面 java.awt.image.ImageObserver 繼承的欄位
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
建構子摘要
Container()
          建構一個新的 Container。
 
方法摘要
 Component add(Component comp)
          將指定元件追加到此容器的尾部。
 Component add(Component comp, int index)
          將指定元件添加到此容器的給定位置上。
 void add(Component comp, Object constraints)
          將指定的元件添加到此容器的尾部。
 void add(Component comp, Object constraints, int index)
          使用指定約束,將指定元件添加到此容器的指定索引所在的位置上。
 Component add(String name, Component comp)
          將指定元件添加到此容器中。
 void addContainerListener(ContainerListener l)
          添加指定容器的偵聽器,以接收來自此容器的容器事件。
protected  void addImpl(Component comp, Object constraints, int index)
          將指定元件添加到此容器的指定索引所在的位置上。
 void addNotify()
          通過將這個 Container 連接到本機螢幕資源,使其可以顯示。
 void addPropertyChangeListener(PropertyChangeListener listener)
          將一個 PropertyChangeListener 添加到偵聽器列表中。
 void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
          將一個 PropertyChangeListener 添加到某個指定屬性的偵聽器列表中。
 void applyComponentOrientation(ComponentOrientation o)
          設置此容器和其中包含的所有元件的 ComponentOrientation 屬性。
 boolean areFocusTraversalKeysSet(int id)
          返回是否已經為此 Container 明確定義了用於給定焦點遍歷操作的焦點遍歷鍵的 Set。
 int countComponents()
          已過時。 從 JDK version 1.1 開始,用 etComponentCount() 取代。
 void deliverEvent(Event e)
          已過時。 從 JDK version 1.1 開始,用 dispatchEvent(AWTEvent e) 取代
 void doLayout()
          使此容器佈置其元件。
 Component findComponentAt(int x, int y)
          對包含指定位置的可視子元件進行定位。
 Component findComponentAt(Point p)
          對包含指定點的可視子元件進行定位。
 float getAlignmentX()
          返回沿 x 軸的對齊方式。
 float getAlignmentY()
          返回沿 y 軸的對齊方式。
 Component getComponent(int n)
          獲取此容器中的第 n 個元件。
 Component getComponentAt(int x, int y)
          對包含 x,y 位置的元件進行定位。
 Component getComponentAt(Point p)
          獲取包含指定點的元件。
 int getComponentCount()
          獲取此面板中的元件數。
 Component[] getComponents()
          獲取此容器中的所有元件。
 int getComponentZOrder(Component comp)
          返回容器內元件的 z 順序索引。
 ContainerListener[] getContainerListeners()
          返回已在此容器上註冊的所有容器偵聽器的陣列。
 Set<AWTKeyStroke> getFocusTraversalKeys(int id)
          為此 Container 的給定遍歷操作返回焦點遍歷鍵的 Set。
 FocusTraversalPolicy getFocusTraversalPolicy()
          返回焦點遍歷策略,用於管理此 Container 子元件的鍵盤遍歷;如果此 Container 不是一個焦點循環根,則返回 null。
 Insets getInsets()
          確定此容器的 insets,它指示容器邊框的大小。
 LayoutManager getLayout()
          獲取此容器的佈局管理器。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
          返回當前已在此 Container 上註冊為 FooListener 的所有物件的陣列。
 Dimension getMaximumSize()
          返回此容器的最大大小。
 Dimension getMinimumSize()
          返回此容器的最小大小。
 Point getMousePosition(boolean allowChildren)
          如果 Container 位於鼠標指針下,則返回鼠標指針在此 Container 的坐標中的位置,否則返回 null
 Dimension getPreferredSize()
          返回此容器的首選大小。
 Insets insets()
          已過時。 從 JDK version 1.1 開始,用 getInsets() 取代。
 void invalidate()
          使容器失效。
 boolean isAncestorOf(Component c)
          檢查該元件是否包含在此容器的元件層次結構中。
 boolean isFocusCycleRoot()
          返回此 Container 是否是某個焦點遍歷循環的根。
 boolean isFocusCycleRoot(Container container)
          返回指定的 Container 是否是此 Container 的焦點遍歷循環的焦點循環根。
 boolean isFocusTraversalPolicyProvider()
          返回此容器是否提供焦點遍歷策略。
 boolean isFocusTraversalPolicySet()
          返回是否為此 Container 明確設置焦點遍歷策略。
 void layout()
          已過時。 從 JDK version 1.1,用 doLayout() 取代。
 void list(PrintStream out, int indent)
          將此容器的清單列印到指定輸出串流。
 void list(PrintWriter out, int indent)
          將一個列表列印到指定列印編寫器,從指定縮排位置開始。
 Component locate(int x, int y)
          已過時。 從 JDK version 1.1 開始,用 getComponentAt(int, int) 取代。
 Dimension minimumSize()
          已過時。 從 JDK version 1.1 開始,用 getMinimumSize() 取代。
 void paint(Graphics g)
          繪製容器。
 void paintComponents(Graphics g)
          繪製此容器中的每個元件。
protected  String paramString()
          返回表示此 Container 的狀態的字元串。
 Dimension preferredSize()
          已過時。 從 JDK version 1.1 開始,用 getPreferredSize() 取代。
 void print(Graphics g)
          列印容器。
 void printComponents(Graphics g)
          列印此容器中的每個元件。
protected  void processContainerEvent(ContainerEvent e)
          通過將發生在此容器上的容器事件指派給所有已註冊的 ContainerListener 物件來處理這些事件。
protected  void processEvent(AWTEvent e)
          處理關於此容器的事件。
 void remove(Component comp)
          從此容器中移除指定元件。
 void remove(int index)
          從此容器中移除 index 指定的元件。
 void removeAll()
          從此容器中移除所有元件。
 void removeContainerListener(ContainerListener l)
          移除指定容器的偵聽器,從而不再接收來自此容器的容器事件。
 void removeNotify()
          通過移除此 Container 到其本機螢幕資源的連接,使其不可顯示。
 void setComponentZOrder(Component comp, int index)
          將指定元件移動到容器中指定的 z 順序索引。
 void setFocusCycleRoot(boolean focusCycleRoot)
          設置此 Container 是否是某個焦點遍歷循環的根。
 void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
          為此 Container 的給定遍歷操作設置焦點遍歷鍵。
 void setFocusTraversalPolicy(FocusTraversalPolicy policy)
          如果此 Container 是一個焦點循環根,則設置將管理此 Container 的子代的鍵盤遍歷的焦點遍歷策略。
 void setFocusTraversalPolicyProvider(boolean provider)
          設置是否將用此容器提供焦點遍歷策略。
 void setFont(Font f)
          設置此容器的字體。
 void setLayout(LayoutManager mgr)
          設置此容器的佈局管理器。
 void transferFocusBackward()
          將焦點轉移到前一個元件,就好像此 Component 曾是焦點所有者。
 void transferFocusDownCycle()
          將焦點向下傳輸一個焦點遍歷循環。
 void update(Graphics g)
          更新容器。
 void validate()
          驗證此容器及其所有子元件。
protected  void validateTree()
          遞歸繼承容器階層樹,對於所有被標記為需要重新計算佈局的子階層樹(標記為無效的那些子階層樹)重新計算佈局。
 
從類別 java.awt.Component 繼承的方法
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

Container

public Container()
建構一個新的 Container。可以直接擴展 Container,但在這種情況下是輕量級的,並且它必須被位於本機元件階層樹中更高處的某一個父容器包含。(比如說 Frame)。

方法詳細資訊

getComponentCount

public int getComponentCount()
獲取此面板中的元件數。

返回:
此面板中的元件數。
從以下版本開始:
JDK1.1
另請參見:
getComponent(int)

countComponents

@Deprecated
public int countComponents()
已過時。 從 JDK version 1.1 開始,用 etComponentCount() 取代。


getComponent

public Component getComponent(int n)
獲取此容器中的第 n 個元件。

參數:
n - 要獲取的元件的索引。
返回:
此容器中的 nth 元件。
拋出:
ArrayIndexOutOfBoundsException - 如果 nth 值不存在。

getComponents

public Component[] getComponents()
獲取此容器中的所有元件。

返回:
此容器中的所有元件的陣列。

getInsets

public Insets getInsets()
確定此容器的 insets,它指示容器邊框的大小。

例如,Frame 物件有一個頂端 inset,它對應於窗體的標題欄的高度。

返回:
此容器的 inset。
從以下版本開始:
JDK1.1
另請參見:
Insets, LayoutManager

insets

@Deprecated
public Insets insets()
已過時。 從 JDK version 1.1 開始,用 getInsets() 取代。


add

public Component add(Component comp)
將指定元件追加到此容器的尾部。這是一個適用於 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

註:如果已經將某個元件添加到顯示的容器中,則必須在此容器上調用 validate,以顯示新的元件。如果添加多個元件,那麼可以在添加所有元件之後,通過只調用一次 validate 來提高效率。

參數:
comp - 要添加的元件
返回:
component 參數
拋出:
NullPointerException - 如果 compnull
另請參見:
addImpl(java.awt.Component, java.lang.Object, int), validate(), JComponent.revalidate()

add

public Component add(String name,
                     Component comp)
將指定元件添加到此容器中。這是一個適用於 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

從 JDK version 1.1 開始,此方法已過時。請使用 add(Component, Object) 方法代替。

拋出:
NullPointerException - 如果 compnull
另請參見:
add(Component, Object)

add

public Component add(Component comp,
                     int index)
將指定元件添加到此容器的給定位置上。這是一個適用於 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

註:如果已經將某個元件添加到顯示的容器中,則必須在此容器上調用 validate,以顯示新的元件。如果添加多個元件,那麼可以在添加所有元件之後,通過只調用一次 validate 來提高效率。

參數:
comp - 要添加的元件
index - 插入元件的位置,-1 表示將元件追加到尾部
返回:
元件 comp
拋出:
NullPointerException - 如果 compnull
IllegalArgumentException - 如果 index 無效(有關細節請參閱 addImpl(java.awt.Component, java.lang.Object, int)
另請參見:
addImpl(java.awt.Component, java.lang.Object, int), remove(int), validate(), JComponent.revalidate()

setComponentZOrder

public void setComponentZOrder(Component comp,
                               int index)
將指定元件移動到容器中指定的 z 順序索引。z 順序確定了繪製元件的順序;具有最高 z 順序的元件將第一個繪製,而具有最低 z 順序的元件將最後一個繪製。在元件重疊的地方,具有較低 z 順序的元件將覆寫具有較高 z 順序的元件。

如果元件是其他某個 container 的子元件,則在將它添加到此容器之前,從該容器中移除它。此方法與 java.awt.Container.add(Component, int) 之間的重要不同是,在將元件從其以前的容器中移除時,此方法不對該元件調用 removeNotify,除非有此必要,並且基礎本機視窗系統允許這樣做。因此,如果元件擁有鍵盤焦點,那麼在移動到新的位置上時,它會維持該焦點。

要保證此屬性只應用於輕量級的非 Container 元件。

:並不是所有的平臺都支持在不調用 removeNotify 的情況下,將重量級元件的 z 順序從一個容器更改到另一個容器中。無法檢測某個平臺是否支持這一點,因此開發人員不應該作出任何假設。

參數:
comp - 要移動的元件
index - 在容器的列表中插入元件的位置,其中 getComponentCount() 指追加到尾部
拋出:
NullPointerException - 如果 compnull
IllegalArgumentException - 如果 comp 是該容器的父容器之一
IllegalArgumentException - 如果在容器間移動的 index 不在 [0, getComponentCount()] 範圍內,或者在容器內移動的 index 不在 [0, getComponentCount()-1] 範圍內
IllegalArgumentException - 如果將一個容器添加給其自身
IllegalArgumentException - 如果將 Window 添加到容器中
從以下版本開始:
1.5
另請參見:
getComponentZOrder(java.awt.Component)

getComponentZOrder

public int getComponentZOrder(Component comp)
返回容器內元件的 z 順序索引。元件在 z 順序層次結構中所處的位置越高,它的索引就越低。具有最低 z 順序索引的元件最後一個被繪製,而它在層次結構中高於其他所有子元件。

參數:
comp - 正查詢的元件
返回:
元件的 z 順序索引;如果 component 為 null 或者不屬於該容器,則返回 -1
從以下版本開始:
1.5
另請參見:
setComponentZOrder(java.awt.Component, int)

add

public void add(Component comp,
                Object constraints)
將指定的元件添加到此容器的尾部。同時通知佈局管理器使用指定的 constraints 物件將元件添加到此容器的佈局中。這是一個適用於 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

註:如果已經將某個元件添加到顯示的容器中,則必須在此容器上調用 validate,以顯示新的元件。如果添加多個元件,那麼可以在添加所有元件之後,通過只調用一次 validate 來提高效率。

參數:
comp - 要添加的元件
constraints - 表示此元件的佈局約束的物件
拋出:
NullPointerException - 如果 compnull
從以下版本開始:
JDK1.1
另請參見:
addImpl(java.awt.Component, java.lang.Object, int), validate(), JComponent.revalidate(), LayoutManager

add

public void add(Component comp,
                Object constraints,
                int index)
使用指定約束,將指定元件添加到此容器的指定索引所在的位置上。還要通知佈局管理器,使用指定的約束物件將元件添加到此容器的佈局中。這是一個適用於 addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。

註:如果已經將某個元件添加到顯示的容器中,則必須在此容器上調用 validate,以顯示新的元件。如果添加多個元件,那麼可以在添加所有元件之後,通過只調用一次 validate 來提高效率。

參數:
comp - 要添加的元件
constraints - 表示此元件的佈局約束的物件
index - 容器列表中插入元件的位置;-1 表示將元件插入尾部
拋出:
NullPointerException - 如果 compnull
IllegalArgumentException - 如果 index 無效(有關細節請參閱 addImpl(java.awt.Component, java.lang.Object, int)
另請參見:
addImpl(java.awt.Component, java.lang.Object, int), validate(), JComponent.revalidate(), remove(int), LayoutManager

addImpl

protected void addImpl(Component comp,
                       Object constraints,
                       int index)
將指定元件添加到此容器的指定索引所在的位置上。此方法還通知佈局管理器,通過 addLayoutComponent 方法,使用指定的約束物件將元件添加到此容器的佈局中。

這些約束是由正使用的特定佈局管理器定義的。例如,BorderLayout 類別定義了五個約束:BorderLayout.NORTHBorderLayout.SOUTHBorderLayout.EASTBorderLayout.WESTBorderLayout.CENTER

GridBagLayout 類別需要一個 GridBagConstraints 物件。如果傳遞正確的約束物件型別時失敗,則會導致 IllegalArgumentException

如果當前佈局管理器實作了 LayoutManager2,則在其上調用 LayoutManager2.addLayoutComponent(Component,Object)。如果當前佈局管理器沒有實作 LayoutManager2,並且約束是一個 String,則在其上調用 LayoutManager.addLayoutComponent(String,Component)

如果該元件不是此容器的祖先容器,並且有一個非 null 父元件,則在將該元件添加到此容器之前,從其當前父元件中移除它。

在其他所有添加方法參考此方法時,如果某個程序需要追蹤每個添加到容器的請求,那麼這就是要覆寫的方法。被覆寫的方法通常應該套件括一個對該方法的父級類別版本的調用:

super.addImpl(comp, constraints, index)

參數:
comp - 要添加的元件
constraints - 表示此元件的佈局約束的物件
容器列表中插入元件的位置;其中 - -1 表示將元件追加到尾部
拋出:
IllegalArgumentException - 如果 index 無效;如果 comp 是此容器的子容器,則有效範圍是 [-1, getComponentCount()-1];如果元件不是此容器的子容器,則有效範圍是 [-1, getComponentCount()]
IllegalArgumentException - 如果 comp 是此容器的祖先容器
IllegalArgumentException - 如果向容器添加一個視窗
NullPointerException - 如果 compnull
從以下版本開始:
JDK1.1
另請參見:
add(Component), add(Component, int), add(Component, java.lang.Object), LayoutManager, LayoutManager2

remove

public void remove(int index)
從此容器中移除 index 指定的元件。此方法還通知佈局管理器,通過 removeLayoutComponent 方法從此容器的佈局中移除該元件。

註:如果已經從已顯示的容器中移除一個元件,則必須在該容器上調用 validate() 來反映更改。如果移除多個元件,那麼可以在移除所有元件之後,通過只調用一次 validate() 來提高效率。

參數:
index - 要移除的元件的索引
拋出:
ArrayIndexOutOfBoundsException - 如果 index 不在範圍 [0, getComponentCount()-1]
從以下版本開始:
JDK1.1
另請參見:
add(java.awt.Component), validate(), getComponentCount()

remove

public void remove(Component comp)
從此容器中移除指定元件。此方法還通知佈局管理器,通過 removeLayoutComponent 方法從此容器的佈局中移除該元件。

註:如果已經從已顯示的容器中移除一個元件,則必須在該容器上調用 validate() 來反映更改。如果移除多個元件,那麼可以在移除所有元件之後,通過只調用一次 validate() 來提高效率。

參數:
comp - 要移除的元件
另請參見:
add(java.awt.Component), validate(), remove(int)

removeAll

public void removeAll()
從此容器中移除所有元件。此方法還通知佈局管理器,通過 removeLayoutComponent 方法從此容器的佈局中移除這些元件。

另請參見:
add(java.awt.Component), remove(int)

getLayout

public LayoutManager getLayout()
獲取此容器的佈局管理器。

另請參見:
doLayout(), setLayout(java.awt.LayoutManager)

setLayout

public void setLayout(LayoutManager mgr)
設置此容器的佈局管理器。

參數:
mgr - 指定的佈局管理器
另請參見:
doLayout(), getLayout()

doLayout

public void doLayout()
使此容器佈置其元件。大部分程序不應該直接調用此方法,而是應該調用 validate 方法。

覆寫:
類別 Component 中的 doLayout
從以下版本開始:
JDK1.1
另請參見:
LayoutManager.layoutContainer(java.awt.Container), setLayout(java.awt.LayoutManager), validate()

layout

@Deprecated
public void layout()
已過時。 從 JDK version 1.1,用 doLayout() 取代。

覆寫:
類別 Component 中的 layout

invalidate

public void invalidate()
使容器失效。該容器及其之上的所有父容器被標記為需要重新佈置。此方法經常被調用,所以必須快速執行它。

如果在此容器上安裝的 LayoutManager 是一個 LayoutManager2 實例,則在該實例上調用 LayoutManager2.invalidateLayout(Container),並提供此 Container 作為參數。

覆寫:
類別 Component 中的 invalidate
另請參見:
validate(), layout(), LayoutManager, LayoutManager2.invalidateLayout(Container)

validate

public void validate()
驗證此容器及其所有子元件。

使用 validate 方法會使容器再次佈置其子元件。已經顯示容器後,在修改此容器的子元件的時候(在容器中添加或移除元件,或者更改與佈局相關的資訊),應該調用上述方法。

如果此 Container 無效,則此方法將調用 validateTree 方法,並將此 Container 標記為有效。否則不執行任何動作。

覆寫:
類別 Component 中的 validate
另請參見:
add(java.awt.Component), Component.invalidate(), JComponent.revalidate(), validateTree()

validateTree

protected void validateTree()
遞歸繼承容器階層樹,對於所有被標記為需要重新計算佈局的子階層樹(標記為無效的那些子階層樹)重新計算佈局。同步應該由調用本方法的方法 (validate) 提供。

另請參見:
doLayout(), validate()

setFont

public void setFont(Font f)
設置此容器的字體。

覆寫:
類別 Component 中的 setFont
參數:
f - 將成為此容器的字體的字體。
從以下版本開始:
JDK1.0
另請參見:
Component.getFont()

getPreferredSize

public Dimension getPreferredSize()
返回此容器的首選大小。如果尚未通過 Component.setPreferredSize(Dimension) 顯式設置首選大小,並且此 Container 有一個 non-null LayoutManager,則使用 LayoutManager.preferredLayoutSize(Container) 來計算首選大小。

註:一些實作可能快取記憶體從 LayoutManager 返回的值。每次調用此方法時,這些快取記憶體實作不需要在 LayoutManager 上調用 preferredLayoutSize,而是只在 Container 變得無效之後查詢 LayoutManager

覆寫:
類別 Component 中的 getPreferredSize
返回:
表示此容器的首選大小的 Dimension 實例。
另請參見:
getMinimumSize(), getMaximumSize(), getLayout(), LayoutManager.preferredLayoutSize(Container), Component.getPreferredSize()

preferredSize

@Deprecated
public Dimension preferredSize()
已過時。 從 JDK version 1.1 開始,用 getPreferredSize() 取代。

覆寫:
類別 Component 中的 preferredSize

getMinimumSize

public Dimension getMinimumSize()
返回此容器的最小大小。如果尚未通過 Component.setMinimumSize(Dimension) 顯式設置最小大小,並且此 Container 有一個 non-null LayoutManager,則使用 LayoutManager.minimumLayoutSize(Container) 來計算最小大小。

註:一些實作可能快取記憶體從 LayoutManager 返回的值。每次調用此方法時,這些快取記憶體實作不需要在 LayoutManager 上調用 minimumLayoutSize,而是只在 Container 變得無效之後查詢 LayoutManager

覆寫:
類別 Component 中的 getMinimumSize
返回:
表示此容器的最小大小的 Dimension 實例。
從以下版本開始:
JDK1.1
另請參見:
getPreferredSize(), getMaximumSize(), getLayout(), LayoutManager.minimumLayoutSize(Container), Component.getMinimumSize()

minimumSize

@Deprecated
public Dimension minimumSize()
已過時。 從 JDK version 1.1 開始,用 getMinimumSize() 取代。

覆寫:
類別 Component 中的 minimumSize

getMaximumSize

public Dimension getMaximumSize()
返回此容器的最大大小。如果尚未通過 Component.setMaximumSize(Dimension) 顯式設置最大大小,並且在此 Container 上安裝的 LayoutManager 是一個 LayoutManager2 實例,則使用 LayoutManager2.maximumLayoutSize(Container) 來計算最大大小。

註:一些實作可能快取記憶體從 LayoutManager2 返回的值。每次調用此方法時,這些快取記憶體實作不需要在 LayoutManager2 上調用 maximumLayoutSize,而是只在 Container 變得無效之後查詢 LayoutManager2

覆寫:
類別 Component 中的 getMaximumSize
返回:
表示此容器最大大小的 Dimension 實例。
另請參見:
getPreferredSize(), getMinimumSize(), getLayout(), LayoutManager2.maximumLayoutSize(Container), Component.getMaximumSize()

getAlignmentX

public float getAlignmentX()
返回沿 x 軸的對齊方式。這指出了相對於其他元件將如何對齊該元件。該值應該在 0 到 1 之間,其中,0 表示根據原點進行對齊,1 表示根據距原點最遠的地方對齊,0.5 表示從中間對齊等等。

覆寫:
類別 Component 中的 getAlignmentX

getAlignmentY

public float getAlignmentY()
返回沿 y 軸的對齊方式。這指出相對於其他元件將如何排列該元件。該值應該在 0 到 1 之間,其中,0 表示根據原點進行對齊,1 表示根據距原點最遠的地方對齊,0.5 表示從中間對齊等等。

覆寫:
類別 Component 中的 getAlignmentY

paint

public void paint(Graphics g)
繪製容器。該方法將 paint 轉發給任意一個此容器子元件的輕量級元件。如果重新實作此方法,那麼應該調用 super.paint(g) 方法,從而可以正確地呈現輕量級元件。如果通過 g 中的當前剪切設置完全剪切某個子元件,則不會將 paint() 轉發給這個子元件。

覆寫:
類別 Component 中的 paint
參數:
g - 指定的 Graphics 視窗
另請參見:
Component.update(Graphics)

update

public void update(Graphics g)
更新容器。該方法將 update 方法轉發給任意一個此容器子元件的輕量級元件。如果重新實作此方法,那麼應該調用 super.update(g) 方法,從而可以正確地呈現輕量級元件。如果通過 g 中的當前剪切設置完全剪切某個子元件,則不會將 update() 轉發給這個子元件。

覆寫:
類別 Component 中的 update
參數:
g - 指定的 Graphics 視窗
另請參見:
Component.update(Graphics)

print

public void print(Graphics g)
列印容器。該方法將 print 方法轉發給任意一個此容器子元件的輕量級元件。如果重新實作此方法,那麼應該調用 super.print(g) 方法,從而可以正確地呈現輕量級元件。如果通過 g 中的當前剪切設置完全剪切某個子元件,則不會將 print() 轉發給這個子元件。

覆寫:
類別 Component 中的 print
參數:
g - 指定的 Graphics 視窗
另請參見:
Component.update(Graphics)

paintComponents

public void paintComponents(Graphics g)
繪製此容器中的每個元件。

參數:
g - 圖形上下文。
另請參見:
Component.paint(java.awt.Graphics), Component.paintAll(java.awt.Graphics)

printComponents

public void printComponents(Graphics g)
列印此容器中的每個元件。

參數:
g - 圖形上下文。
另請參見:
Component.print(java.awt.Graphics), Component.printAll(java.awt.Graphics)

addContainerListener

public void addContainerListener(ContainerListener l)
添加指定容器的偵聽器,以接收來自此容器的容器事件。如果 l 為 null,則不會拋出異常,並且不執行任何動作。 有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題

參數:
l - 容器偵聽器
另請參見:
removeContainerListener(java.awt.event.ContainerListener), getContainerListeners()

removeContainerListener

public void removeContainerListener(ContainerListener l)
移除指定容器的偵聽器,從而不再接收來自此容器的容器事件。如果 l 為 null,則不會拋出異常,並且不執行任何動作。 有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題

參數:
l - 容器偵聽器
另請參見:
addContainerListener(java.awt.event.ContainerListener), getContainerListeners()

getContainerListeners

public ContainerListener[] getContainerListeners()
返回已在此容器上註冊的所有容器偵聽器的陣列。

返回:
此容器的所有 ContainerListener,如果沒有當前已註冊的容器偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
addContainerListener(java.awt.event.ContainerListener), removeContainerListener(java.awt.event.ContainerListener)

getListeners

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

可以用一個類別文字值(比如 FooListener.class)指定 listenerType 參數。例如,可以使用以下程式碼查詢 Container c,以獲得該容器的偵聽器:

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

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

processEvent

protected void processEvent(AWTEvent e)
處理關於此容器的事件。如果事件是一個 ContainerEvent,那麼將調用 processContainerEvent 方法,否則將調用其父級類別的 processEvent 方法。

注意,如果事件參數為 null,則行為是不確定的,並且可能導致異常。

覆寫:
類別 Component 中的 processEvent
參數:
e - 事件
另請參見:
Component.processComponentEvent(java.awt.event.ComponentEvent), Component.processFocusEvent(java.awt.event.FocusEvent), Component.processKeyEvent(java.awt.event.KeyEvent), Component.processMouseEvent(java.awt.event.MouseEvent), Component.processMouseMotionEvent(java.awt.event.MouseEvent), Component.processInputMethodEvent(java.awt.event.InputMethodEvent), Component.processHierarchyEvent(java.awt.event.HierarchyEvent), Component.processMouseWheelEvent(java.awt.event.MouseWheelEvent)

processContainerEvent

protected void processContainerEvent(ContainerEvent e)
通過將發生在此容器上的容器事件指派給所有已註冊的 ContainerListener 物件來處理這些事件。註:直到為此元件啟用容器事件,才調用此方法;這發生在出現以下情況之一時:

注意,如果事件參數為 null,則行為是不確定的,並且可能導致異常。

參數:
e - 容器事件
另請參見:
Component.enableEvents(long)

deliverEvent

@Deprecated
public void deliverEvent(Event e)
已過時。 從 JDK version 1.1 開始,用 dispatchEvent(AWTEvent e) 取代

覆寫:
類別 Component 中的 deliverEvent

getComponentAt

public Component getComponentAt(int x,
                                int y)
對包含 x,y 位置的元件進行定位。在元件中出現重疊的情況下,返回位於最頂端的子元件。這是通過尋找最接近於索引 0 並且通過 Component.contains() 要求包含給定點的元件來確定的,但擁有本機同位體的元件優先於那些沒有同位體的元件(也就是輕量級元件)。

覆寫:
類別 Component 中的 getComponentAt
參數:
x - x 坐標
y - y 坐標
返回:
如果元件不包含該位置上,則返回 null。如果所請求的點上沒有子元件,並且這個點在容器的邊界內,則返回容器自身;否則返回最頂端的子元件。
從以下版本開始:
JDK1.1
另請參見:
Component.contains(int, int)

locate

@Deprecated
public Component locate(int x,
                                   int y)
已過時。 從 JDK version 1.1 開始,用 getComponentAt(int, int) 取代。

覆寫:
類別 Component 中的 locate

getComponentAt

public Component getComponentAt(Point p)
獲取包含指定點的元件。

覆寫:
類別 Component 中的 getComponentAt
參數:
p - 點。
返回:
包含這個點的元件,如果元件不包含這個點,則返回 null
從以下版本開始:
JDK1.1
另請參見:
Component.contains(int, int)

getMousePosition

public Point getMousePosition(boolean allowChildren)
                       throws HeadlessException
如果 Container 位於鼠標指針下,則返回鼠標指針在此 Container 的坐標中的位置,否則返回 null。此方法類似於 Component.getMousePosition(),不過它可能還要考慮 Container 的子元件。如果 allowChildrenfalse,則僅當鼠標指針直接位於 Container 上方,而不是位於被 Container 的子元件掩蓋的那部分上方時,此方法才返回一個非 null 值。如果 allowChildrentrue,且鼠標指針位於 Container 或其任意子代的上方時,此方法才返回一個非 null 值。

參數:
allowChildren - 如果將子元件也考慮進去,則此參數為 true
返回:
相對於 Component 的鼠標坐標,或者 null
拋出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
從以下版本開始:
1.5
另請參見:
Component.getMousePosition()

findComponentAt

public Component findComponentAt(int x,
                                 int y)
對包含指定位置的可視子元件進行定位。在元件中出現重疊的情況下,返回位於最頂端的子元件。如果包含的子元件是一個 Container,則此方法將繼續搜尋,以找到巢狀最深的子元件。在搜尋期間忽略不可見的元件。

findComponentAt 方法不同於 getComponentAt 方法,getComponentAt 方法只搜尋 Container 的直接子元件;如果包含的元件是一個 Container,則 findComponentAt 方法將搜尋子容器,以找到巢狀的元件。

參數:
x - x 坐標
y - y 坐標
返回:
如果元件不包含這個位置上,則返回 null。如果所請求的點上沒有子元件,並且這個點在容器的邊界內,則返回容器自身。
從以下版本開始:
1.2
另請參見:
Component.contains(int, int), getComponentAt(int, int)

findComponentAt

public Component findComponentAt(Point p)
對包含指定點的可視子元件進行定位。在元件中出現重疊的情況下,返回位於最頂端的子元件。如果包含的子元件是一個 Container,則此方法將繼續搜尋,以找到巢狀最深的子元件。在搜尋期間忽略不可見的元件。

findComponentAt 方法不同於 getComponentAt 方法,getComponentAt 方法只搜尋 Container 的直接子元件;如果包含的元件是一個 Container,則 findComponentAt 方法將搜尋子容器,以找到巢狀的元件。

參數:
p - 點。
返回:
如果元件沒有包含該位置,則返回 null。如果所請求的點上沒有子元件,並且這個點在容器的邊界內,則返回容器自身。
從以下版本開始:
1.2
另請參見:
Component.contains(int, int), getComponentAt(int, int)

addNotify

public void addNotify()
通過將這個 Container 連接到本機螢幕資源,使其可以顯示。使容器變得可以顯示會使其所有子容器都變得可以顯示。此方法是通過工具套件內部調用的,不應該通過程序直接調用它。

覆寫:
類別 Component 中的 addNotify
另請參見:
Component.isDisplayable(), removeNotify()

removeNotify

public void removeNotify()
通過移除此 Container 到其本機螢幕資源的連接,使其不可顯示。使容器變得不可顯示會使其所有子容器都變得不可顯示。此方法是通過工具套件內部調用的,不應該通過程序直接調用它。

覆寫:
類別 Component 中的 removeNotify
另請參見:
Component.isDisplayable(), addNotify()

isAncestorOf

public boolean isAncestorOf(Component c)
檢查該元件是否包含在此容器的元件層次結構中。

參數:
c - 元件
返回:
如果它是一個祖先級元件,則返回 true;否則返回 false
從以下版本開始:
JDK1.1

paramString

protected String paramString()
返回表示此 Container 的狀態的字元串。此方法僅在進行除錯的時候使用,對於各個實作,所返回字元串的內容和格式可能有所不同。返回的字元串可能為空,但不可能為 null

覆寫:
類別 Component 中的 paramString
返回:
此容器的參數字元串

list

public void list(PrintStream out,
                 int indent)
將此容器的清單列印到指定輸出串流。該清單起始於指定縮排位置。

使用 indent+1 的縮排來列印容器的直接子元件。這些子元件的子元件是在 indent+2 上列印的,依此類別推。

覆寫:
類別 Component 中的 list
參數:
out - 列印串流
indent - 縮排的空格數
從以下版本開始:
JDK1.0
另請參見:
Component.list(java.io.PrintStream, int)

list

public void list(PrintWriter out,
                 int indent)
將一個列表列印到指定列印編寫器,從指定縮排位置開始。

使用 indent+1 的縮排來列印容器的直接子元件。這些子元件的子元件是在 indent+2 上列印的,依此類別推。

覆寫:
類別 Component 中的 list
參數:
out - 列印編寫器
indent - 縮排的空格數
從以下版本開始:
JDK1.1
另請參見:
Component.list(java.io.PrintWriter, int)

setFocusTraversalKeys

public void setFocusTraversalKeys(int id,
                                  Set<? extends AWTKeyStroke> keystrokes)
為此 Container 的給定遍歷操作設置焦點遍歷鍵。

Container 的焦點遍歷鍵的預設值與實作相關。Sun 建議特定本機平臺的所有實作都使用相同的預設值。對 Windows 和 Unix 的建議列出如下。這些建議用於 Sun AWT 實作中。

標識符 含義 預設值
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS 普通的轉發鍵盤遍歷 KEY_PRESSED 上的 TAB,KEY_PRESSED 上的 CTRL-TAB
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 普通的反向鍵盤遍歷 KEY_PRESSED 上的 SHIFT-TAB,KEY_PRESSED 上的 CTRL-SHIFT-TAB
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 向上移動一個焦點遍歷循環
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 向下移動一個焦點遍歷循環
要禁用一個遍歷鍵,可以使用空 Set;建議使用 Collections.EMPTY_SET。

使用 AWTKeyStroke API,客戶機程式碼可以指定在兩個特定 KeyEvents(KEY_PRESSED 或 KEY_RELEASED)中的哪一個上進行焦點遍歷操作。不管指定的是哪一個 KeyEvent,所有與焦點遍歷鍵相關的 KeyEvent(包括相關 KEY_TYPED 事件)都將被使用,並且不將它們指派給任何 Container。在將事件映射到焦點遍歷操作,或者將同一事件映射到多個預設焦點遍歷操作時,指定 KEY_TYPED 事件是一個運行時錯誤。

如果為 Set 指定 null 值,則此 Container 將繼承其父輩的 Set。如果此 Container 的所有祖先都為 Set 指定了 null 值,則使用當前 KeyboardFocusManager 的預設 Set。

覆寫:
類別 Component 中的 setFocusTraversalKeys
參數:
id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
keystrokes - 用於指定操作的 AWTKeyStroke 的 Set
拋出:
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一;或者 keystroke 中包含 null;或者 keystroke 中的任何 Object 都不是 AWTKeyStroke;或者任何 keystroke 都表示一個 KEY_TYPED 事件;或者任何 keystroke 總是映射到此 Container 的另一個焦點遍歷操作
從以下版本開始:
1.4
另請參見:
getFocusTraversalKeys(int), KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS

getFocusTraversalKeys

public Set<AWTKeyStroke> getFocusTraversalKeys(int id)
為此 Container 的給定遍歷操作返回焦點遍歷鍵的 Set。(有關每個鍵的完整描述,請參閱 setFocusTraversalKeys。)

如果沒有為此 Container 明確定義了遍歷鍵的 Set,則返回此 Container 的父 Set。如果沒有為此 Container 的任何祖先明確定義 Set,則返回當前 KeyboardFocusManager 的預設 Set。

覆寫:
類別 Component 中的 getFocusTraversalKeys
參數:
id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
返回:
用於指定操作的 AWTKeyStrokes 的 Set。此 Set 將是不可修改的,並且可能是空的。從不返回 null。
拋出:
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
從以下版本開始:
1.4
另請參見:
setFocusTraversalKeys(int, java.util.Set), KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS

areFocusTraversalKeysSet

public boolean areFocusTraversalKeysSet(int id)
返回是否已經為此 Container 明確定義了用於給定焦點遍歷操作的焦點遍歷鍵的 Set。如果此方法返回 false,則此 Container 從一個祖先或當前 KeyboardFocusManager 那裡繼承 Set。

覆寫:
類別 Component 中的 areFocusTraversalKeysSet
參數:
id - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
返回:
如果已經為此 Component 明確定義了用於給定焦點遍歷操作的焦點遍歷鍵的 Set,則返回 true;否則返回 false
拋出:
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
從以下版本開始:
1.4

isFocusCycleRoot

public boolean isFocusCycleRoot(Container container)
返回指定的 Container 是否是此 Container 的焦點遍歷循環的焦點循環根。每個焦點遍歷循環只有一個焦點循環根,並且不是焦點循環根的每個 Container 只屬於一個焦點遍歷循環。那些是焦點循環根的容器屬於兩個循環:一個根植於 Container 自身中,另一個根植於此 Container 的最近的焦點循環根祖先中。在這種情況下,對於這兩種 Container,此方法都將返回 true

覆寫:
類別 Component 中的 isFocusCycleRoot
參數:
container - 要測試的 Container
返回:
如果指定 Container 是此 Container 的一個焦點循環根,則返回 true;否則返回 false
從以下版本開始:
1.4
另請參見:
isFocusCycleRoot()

transferFocusBackward

public void transferFocusBackward()
從類別 Component 複製的描述
將焦點轉移到前一個元件,就好像此 Component 曾是焦點所有者。

覆寫:
類別 Component 中的 transferFocusBackward
另請參見:
Component.requestFocus()

setFocusTraversalPolicy

public void setFocusTraversalPolicy(FocusTraversalPolicy policy)
如果此 Container 是一個焦點循環根,則設置將管理此 Container 的子代的鍵盤遍歷的焦點遍歷策略。如果參數為 null,則此 Container 將繼承其焦點循環根祖先的策略。如果參數為非 null 值,則此策略將由所有焦點循環根的子元件繼承,這些子元件沒有自己的鍵盤遍歷策略(它們將以遞歸方式管理其焦點循環根的子元件)。

如果此 Container 不是一個焦點循環根,要記得該策略,但直到此 Container 成為焦點循環根,此 Container 或其他任何 Container 才可以使用或繼承此策略。

參數:
policy - 此 Container 的新的焦點遍歷策略
從以下版本開始:
1.4
另請參見:
getFocusTraversalPolicy(), setFocusCycleRoot(boolean), isFocusCycleRoot(java.awt.Container)

getFocusTraversalPolicy

public FocusTraversalPolicy getFocusTraversalPolicy()
返回焦點遍歷策略,用於管理此 Container 子元件的鍵盤遍歷;如果此 Container 不是一個焦點循環根,則返回 null。如果沒有明確為此 Container 設置遍歷策略,則返回此 Container 的焦點循環根祖先的策略。

返回:
此 Container 的焦點遍歷策略,如果此 Container 不是一個焦點循環根,則返回 null。
從以下版本開始:
1.4
另請參見:
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), setFocusCycleRoot(boolean), isFocusCycleRoot(java.awt.Container)

isFocusTraversalPolicySet

public boolean isFocusTraversalPolicySet()
返回是否為此 Container 明確設置焦點遍歷策略。如果此方法返回 false,則此 Container 將從一個祖先那裡繼承其焦點遍歷策略。

返回:
如果已經明確為此 Container 設置焦點遍歷策略,則返回 true;否則返回 false
從以下版本開始:
1.4

setFocusCycleRoot

public void setFocusCycleRoot(boolean focusCycleRoot)
設置此 Container 是否是某個焦點遍歷循環的根。一旦焦點進入某個遍歷循環,它通常無法通過焦點遍歷離開,除非按下向上循環鍵或向下循環鍵之一。普通遍歷被限定於此 Container,該 Container 的所有子代並不是下級焦點循環根的子代。注意,FocusTraversalPolicy 可能屈服於這些約束。例如,ContainerOrderFocusTraversalPolicy 支持隱式的向下循環遍歷。

指定此 Container 子代的遍歷順序的替代方法是焦點遍歷策略提供者

參數:
focusCycleRoot - 指示此 Container 是否是某個焦點遍歷循環的根
從以下版本開始:
1.4
另請參見:
isFocusCycleRoot(), setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), ContainerOrderFocusTraversalPolicy, setFocusTraversalPolicyProvider(boolean)

isFocusCycleRoot

public boolean isFocusCycleRoot()
返回此 Container 是否是某個焦點遍歷循環的根。一旦焦點進入某個遍歷循環,它通常無法通過焦點遍歷離開,除非按下向上循環鍵或向下循環鍵之一。普通遍歷被限定於此 Container,該 Container 的所有子代並不是下級焦點循環根的子代。注意,FocusTraversalPolicy 可能屈服於這些約束。例如,ContainerOrderFocusTraversalPolicy 支持隱式的向下循環遍歷。

返回:
此 Container 是否是某個焦點遍歷循環的根
從以下版本開始:
1.4
另請參見:
setFocusCycleRoot(boolean), setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), ContainerOrderFocusTraversalPolicy

setFocusTraversalPolicyProvider

public final void setFocusTraversalPolicyProvider(boolean provider)
設置是否將用此容器提供焦點遍歷策略。將使用把該屬性設置為 true 的容器來獲取焦點遍歷策略,而不是獲取最近的焦點循環根的祖先。

參數:
provider - 指示是否將用此容器提供焦點遍歷策略
從以下版本開始:
1.5
另請參見:
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), isFocusTraversalPolicyProvider()

isFocusTraversalPolicyProvider

public final boolean isFocusTraversalPolicyProvider()
返回此容器是否提供焦點遍歷策略。如果將此屬性設置為 true,那麼在鍵盤焦點管理器搜尋容器層次結構來尋找焦點遍歷策略,且在其他任何將此屬性設置為 true 的容器之前遇到此容器或焦點循環根的時候,將使用其焦點遍歷策略,而不是使用焦點循環根的策略。

返回:
如果此容器提供焦點遍歷策略,則返回 true,否則返回 false
從以下版本開始:
1.5
另請參見:
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy), getFocusTraversalPolicy(), setFocusCycleRoot(boolean), setFocusTraversalPolicyProvider(boolean)

transferFocusDownCycle

public void transferFocusDownCycle()
將焦點向下傳輸一個焦點遍歷循環。如果此 Container 是一個焦點循環根,則將焦點的所有者設置為此 Container 的將成為焦點的預設 Component,並將當前焦點循環根設置為此 Container。如果此 Container 不是一個焦點循環根,則不會發生焦點遍歷操作。

從以下版本開始:
1.4
另請參見:
Component.requestFocus(), isFocusCycleRoot(java.awt.Container), setFocusCycleRoot(boolean)

applyComponentOrientation

public void applyComponentOrientation(ComponentOrientation o)
設置此容器和其中包含的所有元件的 ComponentOrientation 屬性。

覆寫:
類別 Component 中的 applyComponentOrientation
參數:
o - 此容器的新元件的方向性和其中包含元件的方向性。
拋出:
NullPointerException - 如果 orientation 為 null。
從以下版本開始:
1.4
另請參見:
Component.setComponentOrientation(java.awt.ComponentOrientation), Component.getComponentOrientation()

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
將一個 PropertyChangeListener 添加到偵聽器列表中。該偵聽器是為此類別的所有邊界屬性註冊的,其中包括以下屬性: 注意,如果此 Container 正繼承某個邊界屬性,那麼不會為回應所繼承屬性中的更改而觸發任何事件。

如果偵聽器為 null,則不會拋出異常,並且不執行任何動作。

覆寫:
類別 Component 中的 addPropertyChangeListener
參數:
listener - 要添加的 PropertyChangeListener
另請參見:
Component.removePropertyChangeListener(java.beans.PropertyChangeListener), addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName,
                                      PropertyChangeListener listener)
將一個 PropertyChangeListener 添加到某個指定屬性的偵聽器列表中。指定的屬性可以是使用者定義的,或者是以下預設屬性之一: 注意,如果此 Container 正繼承某個邊界屬性,那麼不會為回應所繼承屬性中的更改而觸發任何事件。

如果偵聽器為 null,則不會拋出異常,並且不執行任何動作。

覆寫:
類別 Component 中的 addPropertyChangeListener
參數:
propertyName - 上面列出的屬性名稱之一
listener - 要添加的 PropertyChangeListener
另請參見:
addPropertyChangeListener(java.beans.PropertyChangeListener), Component.removePropertyChangeListener(java.beans.PropertyChangeListener)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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