|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.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
為 null
addImpl(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
為 null
add(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
為 null
addImpl(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
為 null
add(Component)
,
add(Component, int)
,
add(Component, java.lang.Object)
,
LayoutManager
,
LayoutManager2
public 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
中的 doLayout
LayoutManager.layoutContainer(java.awt.Container)
,
setLayout(java.awt.LayoutManager)
,
validate()
@Deprecated public void layout()
doLayout()
取代。
Component
中的 layout
public void invalidate()
如果在此容器上安裝的 LayoutManager
是一個 LayoutManager2
實例,則在該實例上調用 LayoutManager2.invalidateLayout(Container)
,並提供此 Container
作為參數。
Component
中的 invalidate
validate()
,
layout()
,
LayoutManager
,
LayoutManager2.invalidateLayout(Container)
public void validate()
使用 validate
方法會使容器再次佈置其子元件。已經顯示容器後,在修改此容器的子元件的時候(在容器中添加或移除元件,或者更改與佈局相關的資訊),應該調用上述方法。
如果此 Container
無效,則此方法將調用 validateTree
方法,並將此 Container
標記為有效。否則不執行任何動作。
Component
中的 validate
add(java.awt.Component)
,
Component.invalidate()
,
JComponent.revalidate()
,
validateTree()
protected void validateTree()
validate
) 提供。
doLayout()
,
validate()
public void setFont(Font f)
Component
中的 setFont
f
- 將成為此容器的字體的字體。Component.getFont()
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()
@Deprecated public Dimension preferredSize()
getPreferredSize()
取代。
Component
中的 preferredSize
public Dimension getMinimumSize()
Component.setMinimumSize(Dimension)
顯式設置最小大小,並且此 Container
有一個 non-null
LayoutManager
,則使用 LayoutManager.minimumLayoutSize(Container)
來計算最小大小。
註:一些實作可能快取記憶體從 LayoutManager
返回的值。每次調用此方法時,這些快取記憶體實作不需要在 LayoutManager
上調用 minimumLayoutSize
,而是只在 Container
變得無效之後查詢 LayoutManager
。
Component
中的 getMinimumSize
Dimension
實例。getPreferredSize()
,
getMaximumSize()
,
getLayout()
,
LayoutManager.minimumLayoutSize(Container)
,
Component.getMinimumSize()
@Deprecated public Dimension minimumSize()
getMinimumSize()
取代。
Component
中的 minimumSize
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()
public float getAlignmentX()
Component
中的 getAlignmentX
public float getAlignmentY()
Component
中的 getAlignmentY
public void paint(Graphics g)
Component
中的 paint
g
- 指定的 Graphics 視窗Component.update(Graphics)
public void update(Graphics g)
Component
中的 update
g
- 指定的 Graphics 視窗Component.update(Graphics)
public void print(Graphics g)
Component
中的 print
g
- 指定的 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
中的 getListeners
listenerType
- 所請求偵聽器的型別;該參數應該指定一個從 java.util.EventListener
繼承的介面
FooListener
的所有物件的陣列,如果沒有添加這樣的偵聽器,則返回一個空陣列
ClassCastException
- 如果 listenerType
沒有指定實作 java.util.EventListener
的類別或介面getContainerListeners()
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)
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
中的 getComponentAt
x
- x 坐標y
- y 坐標
Component.contains(int, int)
@Deprecated public Component locate(int x, int y)
getComponentAt(int, int)
取代。
Component
中的 locate
public Component getComponentAt(Point p)
Component
中的 getComponentAt
p
- 點。
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
中的 addNotify
Component.isDisplayable()
,
removeNotify()
public void removeNotify()
Component
中的 removeNotify
Component.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
中的 list
out
- 列印串流indent
- 縮排的空格數Component.list(java.io.PrintStream, int)
public void list(PrintWriter out, int indent)
使用 indent+1
的縮排來列印容器的直接子元件。這些子元件的子元件是在 indent+2
上列印的,依此類別推。
Component
中的 list
out
- 列印編寫器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
中的 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 的另一個焦點遍歷操作getFocusTraversalKeys(int)
,
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
,
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
public Set<AWTKeyStroke> getFocusTraversalKeys(int id)
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 之一
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_KEYS
public boolean areFocusTraversalKeysSet(int id)
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 之一
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
中的 isFocusCycleRoot
container
- 要測試的 Container
true
;否則返回 false
isFocusCycleRoot()
public void transferFocusBackward()
Component
複製的描述
Component
中的 transferFocusBackward
Component.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()
,
ContainerOrderFocusTraversalPolicy
public final void setFocusTraversalPolicyProvider(boolean provider)
true
的容器來獲取焦點遍歷策略,而不是獲取最近的焦點循環根的祖先。
provider
- 指示是否將用此容器提供焦點遍歷策略setFocusTraversalPolicy(java.awt.FocusTraversalPolicy)
,
getFocusTraversalPolicy()
,
isFocusTraversalPolicyProvider()
public final boolean isFocusTraversalPolicyProvider()
true
,那麼在鍵盤焦點管理器搜尋容器層次結構來尋找焦點遍歷策略,且在其他任何將此屬性設置為 true 的容器之前遇到此容器或焦點循環根的時候,將使用其焦點遍歷策略,而不是使用焦點循環根的策略。
true
,否則返回 false
setFocusTraversalPolicy(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
中的 applyComponentOrientation
o
- 此容器的新元件的方向性和其中包含元件的方向性。
NullPointerException
- 如果 orientation
為 null。Component.setComponentOrientation(java.awt.ComponentOrientation)
,
Component.getComponentOrientation()
public void addPropertyChangeListener(PropertyChangeListener listener)
如果偵聽器為 null,則不會拋出異常,並且不執行任何動作。
Component
中的 addPropertyChangeListener
listener
- 要添加的 PropertyChangeListenerComponent.removePropertyChangeListener(java.beans.PropertyChangeListener)
,
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
如果偵聽器為 null,則不會拋出異常,並且不執行任何動作。
Component
中的 addPropertyChangeListener
propertyName
- 上面列出的屬性名稱之一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。