|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JLayeredPane
public class JLayeredPane
JLayeredPane
為 JFC/Swing 容器添加了深度,允許元件在需要時互相重疊。Integer
物件指定容器中每個元件的深度,其中編號較高的元件位於其他元件之上。有關導向任務的文檔和使用分層窗格的範例,請參閱 The Java Tutorial 中的 How to Use a Layered Pane 一節。
|
JLayeredPane
將該深度範圍分成幾個不同的層。將元件放入相應的層,這樣更容易確保元件正確地重疊,而不必擔心為具體的深度指定編號:
JLayeredPane
的方法 moveToFront(Component)
、moveToBack(Component)
和 setPosition
在元件所在層中對其進行重定位。還可以使用 setLayer
方法更改該元件的當前層。
JLayeredPane
以類似 Container
的方式管理其子級列表,但允許在其內部定義多個層。對同一層中子級的管理就像普通的 Container
物件一樣,但添加的功能是,當子元件重疊時,高層中的子元件顯示在低層中的子元件之上。
每一層都是一個不同的整數。可以在調用 add 的過程中通過傳遞 Integer
物件,從而在 Component
上設置 layer 屬性。
例如:
layeredPane.add(child, JLayeredPane.DEFAULT_LAYER); 或者 layeredPane.add(child, new Integer(10));還可以通過在
JLayeredPane
上進行如下調用在 Component 上設置 layer 屬性:layeredPaneParent.setLayer(child, 10)
JLayeredPane
是該 Component 的父元件。應該將子元件添加到父元件之前 設置 layer 屬性。
編號較高的層顯示在編號較低的層之上。因此,對於每個元件,使用其層編號和字母即可,有代表性的列表順序如下所示:
5a, 5b, 5c, 2a, 2b, 2c, 1a其中最左邊的元件最接近顯示區的頂部。
可以通過調用 moveToFront
或 moveToBack
將元件移入到其所在層的頂部或底部位置。
還可以直接指定某層中元件的位置。有效的位置範圍是從 0 到該層中元件數減一所得的值。值 -1 指示最底層位置。值 0 指示最頂層位置。與層的編號不同,較高的位置值顯示在較低 處。
註: 此序列(通過 java.awt.Container 定義)與層的編號序列相反。可是通常使用的是以下是使用方法 add(Component, layer, position) 的一些範例:調用 add(5x, 5, -1) 得到:moveToFront
、moveToBack
和setLayer
方法。
5a, 5b, 5c, 5x, 2a, 2b, 2c, 1a調用 add(5z, 5, 2) 得到:
5a, 5b, 5z, 5c, 5x, 2a, 2b, 2c, 1a調用 add(3a, 3, 7) 得到:
5a, 5b, 5z, 5c, 5x, 3a, 2a, 2b, 2c, 1a使用正常的 paint/event 機制會使 1a 出現在底部,5a 出現在所有其他元件之上。
註: 這些層只是一個邏輯建構,LayoutManager 將影響此容器的所有子元件,而不管其層設置如何。
警告:Swing 不是執行緒安全的。有關更多資訊,請參閱 Swing's Threading Policy。
警告:此類別的序列化物件與以後的 Swing 版本不相容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠端方法調用)。從 1.4 版本開始,已在 java.beans
套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder
。
巢狀類別摘要 | |
---|---|
protected class |
JLayeredPane.AccessibleJLayeredPane
此類別實作對 JLayeredPane 類別的可存取性支持。 |
從類別 javax.swing.JComponent 繼承的巢狀類別/介面 |
---|
JComponent.AccessibleJComponent |
從類別 java.awt.Container 繼承的巢狀類別/介面 |
---|
Container.AccessibleAWTContainer |
從類別 java.awt.Component 繼承的巢狀類別/介面 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
欄位摘要 | |
---|---|
static Integer |
DEFAULT_LAYER
定義 Default 層的便捷物件。 |
static Integer |
DRAG_LAYER
定義 Drag 層的便捷物件。 |
static Integer |
FRAME_CONTENT_LAYER
定義 Frame Content 層的便捷物件。 |
static String |
LAYER_PROPERTY
綁定屬性 |
static Integer |
MODAL_LAYER
定義 Modal 層的便捷物件。 |
static Integer |
PALETTE_LAYER
定義 Palette 層的便捷物件。 |
static Integer |
POPUP_LAYER
定義 Popup 層的便捷物件。 |
從類別 javax.swing.JComponent 繼承的欄位 |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
從類別 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 |
建構子摘要 | |
---|---|
JLayeredPane()
創建新的 JLayeredPane |
方法摘要 | |
---|---|
protected void |
addImpl(Component comp,
Object constraints,
int index)
將指定元件添加到此容器的指定索引所在的位置上。 |
AccessibleContext |
getAccessibleContext()
獲得與此 JLayeredPane 關聯的 AccessibleContext。 |
int |
getComponentCountInLayer(int layer)
返回指定層中當前的子元件數。 |
Component[] |
getComponentsInLayer(int layer)
返回指定層中元件的陣列。 |
protected Hashtable<Component,Integer> |
getComponentToLayer()
返回將元件映射到層的雜湊表。 |
int |
getIndexOf(Component c)
返回指定 Component 的索引。 |
int |
getLayer(Component c)
返回指定 Component 的 layer 屬性。 |
static int |
getLayer(JComponent c)
獲得 JComponent 的 layer 屬性,此方法不會產生與 setLayer() 類似的副作用(繪製、添加/移除等)。 |
static JLayeredPane |
getLayeredPaneAbove(Component c)
一個便捷方法,它返回包含指定元件的第一個 JLayeredPane。 |
protected Integer |
getObjectForLayer(int layer)
返回與指定層關聯的 Integer 物件。 |
int |
getPosition(Component c)
獲得該元件在其所在層中的相對位置。 |
int |
highestLayer()
返回所有當前子元件的最高層值。 |
protected int |
insertIndexForLayer(int layer,
int position)
一個根據層和位置要求確定插入新子元件的正確位置的基本方法。 |
boolean |
isOptimizedDrawingEnabled()
如果窗格中的元件可以重疊,則返回 false(因為這會導致最優繪製無法進行)。 |
int |
lowestLayer()
返回所有當前子元件的最低層值。 |
void |
moveToBack(Component c)
將該元件移到當前層中所有元件的底層(位置 -1)。 |
void |
moveToFront(Component c)
將該元件移到當前層中所有元件的頂層(位置 0)。 |
void |
paint(Graphics g)
在指定的圖形上下文中繪製此 JLayeredPane。 |
protected String |
paramString()
返回此 JLayeredPane 的字元串表示形式。 |
static void |
putLayer(JComponent c,
int layer)
設置 JComponent 上的 layer 屬性。 |
void |
remove(int index)
從此窗格中移除已索引的元件。 |
void |
removeAll()
從此容器中移除所有元件。 |
void |
setLayer(Component c,
int layer)
設置指定元件的 layer 屬性,使之成為該層中最底部的元件。 |
void |
setLayer(Component c,
int layer,
int position)
為指定元件設置 layer 屬性,並設置它在該層中的位置。 |
void |
setPosition(Component c,
int position)
將該元件移到當前層中的 position 處,其中 0 表示該層中的最頂層位置,-1 表示最底層位置。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final Integer DEFAULT_LAYER
public static final Integer PALETTE_LAYER
public static final Integer MODAL_LAYER
public static final Integer POPUP_LAYER
public static final Integer DRAG_LAYER
public static final Integer FRAME_CONTENT_LAYER
JFrame
public static final String LAYER_PROPERTY
建構子詳細資訊 |
---|
public JLayeredPane()
方法詳細資訊 |
---|
protected void addImpl(Component comp, Object constraints, int index)
Container
複製的描述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)
Container
中的 addImpl
comp
- 要添加的元件constraints
- 表示此元件的佈局約束的物件Container.add(Component)
,
Container.add(Component, int)
,
Container.add(Component, java.lang.Object)
,
LayoutManager
,
LayoutManager2
public void remove(int index)
Container
中的 remove
index
- 指定要移除元件的 int 值getIndexOf(java.awt.Component)
public void removeAll()
Container
中的 removeAll
Container.add(java.awt.Component)
,
Container.remove(int)
public boolean isOptimizedDrawingEnabled()
JComponent
中的 isOptimizedDrawingEnabled
JComponent.isOptimizedDrawingEnabled()
public static void putLayer(JComponent c, int layer)
c
- 要移動的 JComponentlayer
- 一個 int 值,指定要移入的層setLayer(java.awt.Component, int)
public static int getLayer(JComponent c)
c
- 要檢查的 JComponent
public static JLayeredPane getLayeredPaneAbove(Component c)
c
- 要檢查的 Component
JFrame
,
JRootPane
public void setLayer(Component c, int layer)
c
- 要為其設置層的 Componentlayer
- 一個 int 值,指定要設置的層,其中較低編號更接近底部public void setLayer(Component c, int layer, int position)
c
- 要為其設置層的 Componentlayer
- 一個 int 值,指定要設置的層,其中較低編號更接近底部position
- 指定層中位置的 int 值,其中 0 表示最頂層位置,-1 表示最底層位置public int getLayer(Component c)
c
- 要檢查的 Component
public int getIndexOf(Component c)
c
- 要檢查的 Component
public void moveToFront(Component c)
c
- 要移動的 ComponentsetPosition(Component, int)
public void moveToBack(Component c)
c
- 要移動的 ComponentsetPosition(Component, int)
public void setPosition(Component c, int position)
position
處,其中 0 表示該層中的最頂層位置,-1 表示最底層位置。
註:位置編號由 java.awt.Container 定義,且與層的編號相反。較低的位置編號更接近頂層(0 為最頂層),較高的位置編號更接近底層。
c
- 要移動的 Componentposition
- 範圍在 -1 到 N-1 之間的 int 值,其中 N 是該元件當前層中的元件數public int getPosition(Component c)
c
- 要檢查的 Component
getComponentCountInLayer(int)
public int highestLayer()
public int lowestLayer()
public int getComponentCountInLayer(int layer)
layer
- 一個 int 值,指定要檢查的層
public Component[] getComponentsInLayer(int layer)
layer
- 一個 int 值,指定要檢查的層
public void paint(Graphics g)
JComponent
中的 paint
g
- 要在其中進行繪製的 Graphics 上下文JComponent.paintComponent(java.awt.Graphics)
,
JComponent.paintBorder(java.awt.Graphics)
,
JComponent.paintChildren(java.awt.Graphics)
,
JComponent.getComponentGraphics(java.awt.Graphics)
,
JComponent.repaint(long, int, int, int, int)
protected Hashtable<Component,Integer> getComponentToLayer()
protected Integer getObjectForLayer(int layer)
layer
- 指定該層的 int 值
protected int insertIndexForLayer(int layer, int position)
layer
- 指定該層的 int 值position
- 指定層中位置的 int 值
getIndexOf(java.awt.Component)
protected String paramString()
null
。
JComponent
中的 paramString
public AccessibleContext getAccessibleContext()
Accessible
中的 getAccessibleContext
JComponent
中的 getAccessibleContext
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。