|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
public class Container
一般的 Abstract Window Toolkit(AWT) 容器物件是一個可包含其他 AWT 元件的元件。
添加到容器中的元件放在一個列表中。列表的順序將定義元件在容器內的正向堆疊(stack)空間順序。如果將元件添加到容器中時未指定索引,則該索引將被添加到列表尾部(此後它位於堆疊(stack)空間順序的底部)。
注:有關焦點子系統的詳細資訊,請參閱 The Java Tutorial 中 How to Use the Focus Subsystem 一節,要獲得更多的資訊,請參閱 Focus Specification。
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()
獲取此容器的佈局管理器。 |
|
|
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.lang.Object 繼承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 建構子詳細資訊 |
|---|
public Container()
| 方法詳細資訊 |
|---|
public int getComponentCount()
getComponent(int)@Deprecated public int countComponents()
public Component getComponent(int n)
n - 要獲取的元件的索引。
ArrayIndexOutOfBoundsException - 如果 nth 值不存在。public Component[] getComponents()
public Insets getInsets()
例如,Frame 物件有一個頂端 inset,它對應於窗體的標題欄的高度。
Insets,
LayoutManager@Deprecated public Insets insets()
getInsets() 取代。
public Component add(Component comp)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
註:如果已經將某個元件添加到顯示的容器中,則必須在此容器上調用 validate,以顯示新的元件。如果添加多個元件,那麼可以在添加所有元件之後,通過只調用一次 validate 來提高效率。
comp - 要添加的元件
NullPointerException - 如果 comp 為 nulladdImpl(java.awt.Component, java.lang.Object, int),
validate(),
JComponent.revalidate()
public Component add(String name,
Component comp)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
從 JDK version 1.1 開始,此方法已過時。請使用 add(Component, Object) 方法代替。
NullPointerException - 如果 comp 為 nulladd(Component, Object)
public Component add(Component comp,
int index)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
註:如果已經將某個元件添加到顯示的容器中,則必須在此容器上調用 validate,以顯示新的元件。如果添加多個元件,那麼可以在添加所有元件之後,通過只調用一次 validate 來提高效率。
comp - 要添加的元件index - 插入元件的位置,-1 表示將元件追加到尾部
comp
NullPointerException - 如果 comp 為 null
IllegalArgumentException - 如果 index 無效(有關細節請參閱 addImpl(java.awt.Component, java.lang.Object, int))addImpl(java.awt.Component, java.lang.Object, int),
remove(int),
validate(),
JComponent.revalidate()
public void setComponentZOrder(Component comp,
int index)
如果元件是其他某個 container 的子元件,則在將它添加到此容器之前,從該容器中移除它。此方法與 java.awt.Container.add(Component, int) 之間的重要不同是,在將元件從其以前的容器中移除時,此方法不對該元件調用 removeNotify,除非有此必要,並且基礎本機視窗系統允許這樣做。因此,如果元件擁有鍵盤焦點,那麼在移動到新的位置上時,它會維持該焦點。
要保證此屬性只應用於輕量級的非 Container 元件。
注:並不是所有的平臺都支持在不調用 removeNotify 的情況下,將重量級元件的 z 順序從一個容器更改到另一個容器中。無法檢測某個平臺是否支持這一點,因此開發人員不應該作出任何假設。
comp - 要移動的元件index - 在容器的列表中插入元件的位置,其中 getComponentCount() 指追加到尾部
NullPointerException - 如果 comp 為 null
IllegalArgumentException - 如果 comp 是該容器的父容器之一
IllegalArgumentException - 如果在容器間移動的 index 不在 [0, getComponentCount()] 範圍內,或者在容器內移動的 index 不在 [0, getComponentCount()-1] 範圍內
IllegalArgumentException - 如果將一個容器添加給其自身
IllegalArgumentException - 如果將 Window 添加到容器中getComponentZOrder(java.awt.Component)public int getComponentZOrder(Component comp)
comp - 正查詢的元件
null 或者不屬於該容器,則返回 -1setComponentZOrder(java.awt.Component, int)
public void add(Component comp,
Object constraints)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
註:如果已經將某個元件添加到顯示的容器中,則必須在此容器上調用 validate,以顯示新的元件。如果添加多個元件,那麼可以在添加所有元件之後,通過只調用一次 validate 來提高效率。
comp - 要添加的元件constraints - 表示此元件的佈局約束的物件
NullPointerException - 如果 comp 為 nulladdImpl(java.awt.Component, java.lang.Object, int),
validate(),
JComponent.revalidate(),
LayoutManager
public void add(Component comp,
Object constraints,
int index)
addImpl(java.awt.Component, java.lang.Object, int) 的便捷方法。
註:如果已經將某個元件添加到顯示的容器中,則必須在此容器上調用 validate,以顯示新的元件。如果添加多個元件,那麼可以在添加所有元件之後,通過只調用一次 validate 來提高效率。
comp - 要添加的元件constraints - 表示此元件的佈局約束的物件index - 容器列表中插入元件的位置;-1 表示將元件插入尾部
NullPointerException - 如果 comp 為 null
IllegalArgumentException - 如果 index 無效(有關細節請參閱 addImpl(java.awt.Component, java.lang.Object, int))addImpl(java.awt.Component, java.lang.Object, int),
validate(),
JComponent.revalidate(),
remove(int),
LayoutManager
protected void addImpl(Component comp,
Object constraints,
int index)
addLayoutComponent 方法,使用指定的約束物件將元件添加到此容器的佈局中。
這些約束是由正使用的特定佈局管理器定義的。例如,BorderLayout 類別定義了五個約束:BorderLayout.NORTH、BorderLayout.SOUTH、BorderLayout.EAST、BorderLayout.WEST 和 BorderLayout.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 - 如果 comp 為 nulladd(Component),
add(Component, int),
add(Component, java.lang.Object),
LayoutManager,
LayoutManager2public void remove(int index)
index 指定的元件。此方法還通知佈局管理器,通過 removeLayoutComponent 方法從此容器的佈局中移除該元件。
註:如果已經從已顯示的容器中移除一個元件,則必須在該容器上調用 validate() 來反映更改。如果移除多個元件,那麼可以在移除所有元件之後,通過只調用一次 validate() 來提高效率。
index - 要移除的元件的索引
ArrayIndexOutOfBoundsException - 如果 index 不在範圍 [0, getComponentCount()-1] 內add(java.awt.Component),
validate(),
getComponentCount()public void remove(Component comp)
removeLayoutComponent 方法從此容器的佈局中移除該元件。
註:如果已經從已顯示的容器中移除一個元件,則必須在該容器上調用 validate() 來反映更改。如果移除多個元件,那麼可以在移除所有元件之後,通過只調用一次 validate() 來提高效率。
comp - 要移除的元件add(java.awt.Component),
validate(),
remove(int)public void removeAll()
removeLayoutComponent 方法從此容器的佈局中移除這些元件。
add(java.awt.Component),
remove(int)public LayoutManager getLayout()
doLayout(),
setLayout(java.awt.LayoutManager)public void setLayout(LayoutManager mgr)
mgr - 指定的佈局管理器doLayout(),
getLayout()public void doLayout()
validate 方法。
Component 中的 doLayoutLayoutManager.layoutContainer(java.awt.Container),
setLayout(java.awt.LayoutManager),
validate()@Deprecated public void layout()
doLayout() 取代。
Component 中的 layoutpublic void invalidate()
如果在此容器上安裝的 LayoutManager 是一個 LayoutManager2 實例,則在該實例上調用 LayoutManager2.invalidateLayout(Container),並提供此 Container 作為參數。
Component 中的 invalidatevalidate(),
layout(),
LayoutManager,
LayoutManager2.invalidateLayout(Container)public void validate()
使用 validate 方法會使容器再次佈置其子元件。已經顯示容器後,在修改此容器的子元件的時候(在容器中添加或移除元件,或者更改與佈局相關的資訊),應該調用上述方法。
如果此 Container 無效,則此方法將調用 validateTree 方法,並將此 Container 標記為有效。否則不執行任何動作。
Component 中的 validateadd(java.awt.Component),
Component.invalidate(),
JComponent.revalidate(),
validateTree()protected void validateTree()
validate) 提供。
doLayout(),
validate()public void setFont(Font f)
Component 中的 setFontf - 將成為此容器的字體的字體。Component.getFont()public Dimension getPreferredSize()
Component.setPreferredSize(Dimension) 顯式設置首選大小,並且此 Container 有一個 non-null LayoutManager,則使用 LayoutManager.preferredLayoutSize(Container) 來計算首選大小。
註:一些實作可能快取記憶體從 LayoutManager 返回的值。每次調用此方法時,這些快取記憶體實作不需要在 LayoutManager 上調用 preferredLayoutSize,而是只在 Container 變得無效之後查詢 LayoutManager。
Component 中的 getPreferredSizeDimension 實例。getMinimumSize(),
getMaximumSize(),
getLayout(),
LayoutManager.preferredLayoutSize(Container),
Component.getPreferredSize()@Deprecated public Dimension preferredSize()
getPreferredSize() 取代。
Component 中的 preferredSizepublic Dimension getMinimumSize()
Component.setMinimumSize(Dimension) 顯式設置最小大小,並且此 Container 有一個 non-null LayoutManager,則使用 LayoutManager.minimumLayoutSize(Container) 來計算最小大小。
註:一些實作可能快取記憶體從 LayoutManager 返回的值。每次調用此方法時,這些快取記憶體實作不需要在 LayoutManager 上調用 minimumLayoutSize,而是只在 Container 變得無效之後查詢 LayoutManager。
Component 中的 getMinimumSizeDimension 實例。getPreferredSize(),
getMaximumSize(),
getLayout(),
LayoutManager.minimumLayoutSize(Container),
Component.getMinimumSize()@Deprecated public Dimension minimumSize()
getMinimumSize() 取代。
Component 中的 minimumSizepublic Dimension getMaximumSize()
Component.setMaximumSize(Dimension) 顯式設置最大大小,並且在此 Container 上安裝的 LayoutManager 是一個 LayoutManager2 實例,則使用 LayoutManager2.maximumLayoutSize(Container) 來計算最大大小。
註:一些實作可能快取記憶體從 LayoutManager2 返回的值。每次調用此方法時,這些快取記憶體實作不需要在 LayoutManager2 上調用 maximumLayoutSize,而是只在 Container 變得無效之後查詢 LayoutManager2。
Component 中的 getMaximumSizeDimension 實例。getPreferredSize(),
getMinimumSize(),
getLayout(),
LayoutManager2.maximumLayoutSize(Container),
Component.getMaximumSize()public float getAlignmentX()
Component 中的 getAlignmentXpublic float getAlignmentY()
Component 中的 getAlignmentYpublic void paint(Graphics g)
Component 中的 paintg - 指定的 Graphics 視窗Component.update(Graphics)public void update(Graphics g)
Component 中的 updateg - 指定的 Graphics 視窗Component.update(Graphics)public void print(Graphics g)
Component 中的 printg - 指定的 Graphics 視窗Component.update(Graphics)public void paintComponents(Graphics g)
g - 圖形上下文。Component.paint(java.awt.Graphics),
Component.paintAll(java.awt.Graphics)public void printComponents(Graphics g)
g - 圖形上下文。Component.print(java.awt.Graphics),
Component.printAll(java.awt.Graphics)public void addContainerListener(ContainerListener l)
l - 容器偵聽器removeContainerListener(java.awt.event.ContainerListener),
getContainerListeners()public void removeContainerListener(ContainerListener l)
l - 容器偵聽器addContainerListener(java.awt.event.ContainerListener),
getContainerListeners()public ContainerListener[] getContainerListeners()
ContainerListener,如果沒有當前已註冊的容器偵聽器,則返回一個空陣列addContainerListener(java.awt.event.ContainerListener),
removeContainerListener(java.awt.event.ContainerListener)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 中的 getListenerslistenerType - 所請求偵聽器的型別;該參數應該指定一個從 java.util.EventListener 繼承的介面
FooListener 的所有物件的陣列,如果沒有添加這樣的偵聽器,則返回一個空陣列
ClassCastException - 如果 listenerType 沒有指定實作 java.util.EventListener 的類別或介面getContainerListeners()protected void processEvent(AWTEvent e)
ContainerEvent,那麼將調用 processContainerEvent 方法,否則將調用其父級類別的 processEvent 方法。
注意,如果事件參數為 null,則行為是不確定的,並且可能導致異常。
Component 中的 processEvente - 事件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)protected void processContainerEvent(ContainerEvent e)
addContainerListener 註冊 ContainerListener 物件
enableEvents 啟用容器事件
注意,如果事件參數為 null,則行為是不確定的,並且可能導致異常。
e - 容器事件Component.enableEvents(long)@Deprecated public void deliverEvent(Event e)
dispatchEvent(AWTEvent e) 取代
Component 中的 deliverEvent
public Component getComponentAt(int x,
int y)
Component 中的 getComponentAtx - x 坐標y - y 坐標
Component.contains(int, int)
@Deprecated
public Component locate(int x,
int y)
getComponentAt(int, int) 取代。
Component 中的 locatepublic Component getComponentAt(Point p)
Component 中的 getComponentAtp - 點。
null。Component.contains(int, int)
public Point getMousePosition(boolean allowChildren)
throws HeadlessException
Container 位於鼠標指針下,則返回鼠標指針在此 Container 的坐標中的位置,否則返回 null。此方法類似於 Component.getMousePosition(),不過它可能還要考慮 Container 的子元件。如果 allowChildren 為 false,則僅當鼠標指針直接位於 Container 上方,而不是位於被 Container 的子元件掩蓋的那部分上方時,此方法才返回一個非 null 值。如果 allowChildren 為 true,且鼠標指針位於 Container 或其任意子代的上方時,此方法才返回一個非 null 值。
allowChildren - 如果將子元件也考慮進去,則此參數為 true
Component 的鼠標坐標,或者 null
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 trueComponent.getMousePosition()
public Component findComponentAt(int x,
int y)
findComponentAt 方法不同於 getComponentAt 方法,getComponentAt 方法只搜尋 Container 的直接子元件;如果包含的元件是一個 Container,則 findComponentAt 方法將搜尋子容器,以找到巢狀的元件。
x - x 坐標y - y 坐標
Component.contains(int, int),
getComponentAt(int, int)public Component findComponentAt(Point p)
findComponentAt 方法不同於 getComponentAt 方法,getComponentAt 方法只搜尋 Container 的直接子元件;如果包含的元件是一個 Container,則 findComponentAt 方法將搜尋子容器,以找到巢狀的元件。
p - 點。
Component.contains(int, int),
getComponentAt(int, int)public void addNotify()
Component 中的 addNotifyComponent.isDisplayable(),
removeNotify()public void removeNotify()
Component 中的 removeNotifyComponent.isDisplayable(),
addNotify()public boolean isAncestorOf(Component c)
c - 元件
true;否則返回 false。protected String paramString()
Container 的狀態的字元串。此方法僅在進行除錯的時候使用,對於各個實作,所返回字元串的內容和格式可能有所不同。返回的字元串可能為空,但不可能為 null。
Component 中的 paramString
public void list(PrintStream out,
int indent)
使用 indent+1 的縮排來列印容器的直接子元件。這些子元件的子元件是在 indent+2 上列印的,依此類別推。
Component 中的 listout - 列印串流indent - 縮排的空格數Component.list(java.io.PrintStream, int)
public void list(PrintWriter out,
int indent)
使用 indent+1 的縮排來列印容器的直接子元件。這些子元件的子元件是在 indent+2 上列印的,依此類別推。
Component 中的 listout - 列印編寫器indent - 縮排的空格數Component.list(java.io.PrintWriter, int)
public void setFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes)
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 | 向下移動一個焦點遍歷循環 | 無 |
使用 AWTKeyStroke API,客戶機程式碼可以指定在兩個特定 KeyEvents(KEY_PRESSED 或 KEY_RELEASED)中的哪一個上進行焦點遍歷操作。不管指定的是哪一個 KeyEvent,所有與焦點遍歷鍵相關的 KeyEvent(包括相關 KEY_TYPED 事件)都將被使用,並且不將它們指派給任何 Container。在將事件映射到焦點遍歷操作,或者將同一事件映射到多個預設焦點遍歷操作時,指定 KEY_TYPED 事件是一個運行時錯誤。
如果為 Set 指定 null 值,則此 Container 將繼承其父輩的 Set。如果此 Container 的所有祖先都為 Set 指定了 null 值,則使用當前 KeyboardFocusManager 的預設 Set。
Component 中的 setFocusTraversalKeysid - 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 的另一個焦點遍歷操作getFocusTraversalKeys(int),
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS,
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYSpublic Set<AWTKeyStroke> getFocusTraversalKeys(int id)
setFocusTraversalKeys。)
如果沒有為此 Container 明確定義了遍歷鍵的 Set,則返回此 Container 的父 Set。如果沒有為此 Container 的任何祖先明確定義 Set,則返回當前 KeyboardFocusManager 的預設 Set。
Component 中的 getFocusTraversalKeysid - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>),
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS,
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYSpublic boolean areFocusTraversalKeysSet(int id)
false,則此 Container 從一個祖先或當前 KeyboardFocusManager 那裡繼承 Set。
Component 中的 areFocusTraversalKeysSetid - KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一
true;否則返回 false。
IllegalArgumentException - 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS、KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 或 KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS 之一public boolean isFocusCycleRoot(Container container)
true。
Component 中的 isFocusCycleRootcontainer - 要測試的 Container
true;否則返回 falseisFocusCycleRoot()public void transferFocusBackward()
Component 複製的描述
Component 中的 transferFocusBackwardComponent.requestFocus()public void setFocusTraversalPolicy(FocusTraversalPolicy policy)
如果此 Container 不是一個焦點循環根,要記得該策略,但直到此 Container 成為焦點循環根,此 Container 或其他任何 Container 才可以使用或繼承此策略。
policy - 此 Container 的新的焦點遍歷策略getFocusTraversalPolicy(),
setFocusCycleRoot(boolean),
isFocusCycleRoot(java.awt.Container)public FocusTraversalPolicy getFocusTraversalPolicy()
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
setFocusCycleRoot(boolean),
isFocusCycleRoot(java.awt.Container)public boolean isFocusTraversalPolicySet()
false,則此 Container 將從一個祖先那裡繼承其焦點遍歷策略。
true;否則返回 false。public void setFocusCycleRoot(boolean focusCycleRoot)
指定此 Container 子代的遍歷順序的替代方法是焦點遍歷策略提供者。
focusCycleRoot - 指示此 Container 是否是某個焦點遍歷循環的根isFocusCycleRoot(),
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
getFocusTraversalPolicy(),
ContainerOrderFocusTraversalPolicy,
setFocusTraversalPolicyProvider(boolean)public boolean isFocusCycleRoot()
setFocusCycleRoot(boolean),
setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
getFocusTraversalPolicy(),
ContainerOrderFocusTraversalPolicypublic final void setFocusTraversalPolicyProvider(boolean provider)
true 的容器來獲取焦點遍歷策略,而不是獲取最近的焦點循環根的祖先。
provider - 指示是否將用此容器提供焦點遍歷策略setFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
getFocusTraversalPolicy(),
isFocusTraversalPolicyProvider()public final boolean isFocusTraversalPolicyProvider()
true,那麼在鍵盤焦點管理器搜尋容器層次結構來尋找焦點遍歷策略,且在其他任何將此屬性設置為 true 的容器之前遇到此容器或焦點循環根的時候,將使用其焦點遍歷策略,而不是使用焦點循環根的策略。
true,否則返回 falsesetFocusTraversalPolicy(java.awt.FocusTraversalPolicy),
getFocusTraversalPolicy(),
setFocusCycleRoot(boolean),
setFocusTraversalPolicyProvider(boolean)public void transferFocusDownCycle()
Component.requestFocus(),
isFocusCycleRoot(java.awt.Container),
setFocusCycleRoot(boolean)public void applyComponentOrientation(ComponentOrientation o)
ComponentOrientation 屬性。
Component 中的 applyComponentOrientationo - 此容器的新元件的方向性和其中包含元件的方向性。
NullPointerException - 如果 orientation 為 null。Component.setComponentOrientation(java.awt.ComponentOrientation),
Component.getComponentOrientation()public void addPropertyChangeListener(PropertyChangeListener listener)
如果偵聽器為 null,則不會拋出異常,並且不執行任何動作。
Component 中的 addPropertyChangeListenerlistener - 要添加的 PropertyChangeListenerComponent.removePropertyChangeListener(java.beans.PropertyChangeListener),
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
如果偵聽器為 null,則不會拋出異常,並且不執行任何動作。
Component 中的 addPropertyChangeListenerpropertyName - 上面列出的屬性名稱之一listener - 要添加的 PropertyChangeListeneraddPropertyChangeListener(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。