|
JavaTM 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 Panes」を参照してください。
|
JLayeredPane
は深さの範囲をいくつかのレイヤーに分割しています。コンポーネントをこれらのレイヤーのどれかに配置することで、深さを指定する番号を指定することなしに、コンポーネントを適切にオーバーラップさせることができます。
JLayeredPane
のメソッドである moveToFront(Component)
、moveToBack(Component)
、および setPosition
を使用することで、レイヤー内でコンポーネントを再配置することができます。setLayer
メソッドを使用すると、コンポーネントの現在のレイヤーを変更することができます。
JLayeredPane
は、Container
と同じように子のリストを管理しますが、内部で複数のレイヤーを定義することができます。同じレイヤーに属する子は、通常の Container
オブジェクトとまったく同じように管理されますが、子コンポーネントどうしがオーバーラップした場合には、上位のレイヤーのコンポーネントのほうが下位レイヤーのコンポーネントより上に表示されます。
各レイヤーには個別の整数値が割り当てられます。各レイヤーには個別の整数値が割り当てられます。Component
のレイヤー属性を設定するには、add 呼び出しで Integer
オブジェクトを渡します。
例を示します。
layeredPane.add(child, JLayeredPane.DEFAULT_LAYER); or layeredPane.add(child, new Integer(10));Component のレイヤー属性を設定するには、コンポーネントの親である
JlayeredPane
上でlayeredPaneParent.setLayer(child, 10)を呼び出すこともできます。レイヤーは、子を親に追加する前に設定する必要があります。
番号が大きいレイヤーほど上に表示されます。したがって、次のように各コンポーネントに個別のレイヤー番号と文字を割り当てることにより、
5a, 5b, 5c, 2a, 2b, 2c, 1a左のコンポーネントほど上に表示されます。
コンポーネントをレイヤー内で一番上または一番下に移動させるには、moveToFront
または moveToBack
を呼び出します。
レイヤー内でのコンポーネントの位置を位置番号で指定することもできます。指定できる位置番号は、0 〜「レイヤー内のコンポーネント数 - 1」です。-1 を指定すると、コンポーネントは一番下に表示されます。0 を指定すると、コンポーネントは一番上に表示されます。レイヤー番号とは異なり、値が大きいほど下に表示されます。
注: この順序 (java.awt.Container で定義されている) は、レイヤー番号の順序の反対になっています。通常は、add(Component, layer, position) メソッドの使用例を示します。add(5x, 5, -1) 呼び出しの結果は次のとおりです。moveToFront
、moveToBack
、およびsetLayer
を使用します。
5a, 5b, 5c, 5x, 2a, 2b, 2c, 1aadd(5z, 5, 2) 呼び出しの結果は次のとおりです。
5a, 5b, 5z, 5c, 5x, 2a, 2b, 2c, 1aadd(3a, 3, 7) 呼び出しの結果は次のとおりです。
5a, 5b, 5z, 5c, 5x, 3a, 2a, 2b, 2c, 1a通常のペイント/イベント方式では、1a が一番下、5a が一番上に表示されます。
注: これらのレイヤーは単に論理的な構造であり、LayoutManager は、レイヤー設定には関係なく、このコンテナのすべての子コンポーネントに影響します。
警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。JDK Version 1.4 以降、すべての JavaBeans™ の長期間の運用サポートは、java.beans
パッケージに追加されています。詳細は、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
デフォルトレイヤーを定義する簡易オブジェクトです。 |
static Integer |
DRAG_LAYER
ドラッグレイヤーを定義する簡易オブジェクトです。 |
static Integer |
FRAME_CONTENT_LAYER
フレーム内容レイヤーを定義する簡易オブジェクトです。 |
static String |
LAYER_PROPERTY
バウンドプロパティーです。 |
static Integer |
MODAL_LAYER
モーダルレイヤーを定義する簡易オブジェクトです。 |
static Integer |
PALETTE_LAYER
パレットレイヤーを定義する簡易オブジェクトです。 |
static Integer |
POPUP_LAYER
ポップアップレイヤーを定義する簡易オブジェクトです。 |
クラス 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 のレイヤー属性を返します。 |
static int |
getLayer(JComponent c)
JComponent のレイヤープロパティーを返します。 |
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 のレイヤープロパティーを設定します。 |
void |
remove(int index)
この区画からインデックス付きのコンポーネントを削除します。 |
void |
removeAll()
コンテナからすべてのコンポーネントを削除します。 |
void |
setLayer(Component c,
int layer)
指定されたコンポーネントのレイヤー属性を設定し、レイヤー内で一番下のコンポーネントとします。 |
void |
setLayer(Component c,
int layer,
int position)
指定されたコンポーネントのレイヤー属性と、レイヤー内でのコンポーネントの位置を指定します。 |
void |
setPosition(Component c,
int position)
コンポーネントを現在のレイヤーの position に移動します。 |
クラス 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
の 5 つの制約を定義します。
GridBagLayout
クラスには GridBagConstraints
オブジェクトが必要です。正しい型の制約オブジェクトを渡さないと、IllegalArgumentException
が発生します。
現在のレイアウトマネージャーが LayoutManager2
を実装する場合は、このオブジェクトに対して LayoutManager2.addLayoutComponent(Component,Object)
が呼び出されます。現在のレイアウトマネージャーが LayoutManager2
を実装せず、制約が String
である場合は、このオブジェクトに対して LayoutManager.addLayoutComponent(String,Component)
が呼び出されます。
コンポーネントがこのコンテナの上位にはなく、null でない親がある場合は、このコンテナに追加される前に現在の親から削除されます。
これは、プログラムがコンテナへのすべての追加要求を追跡する必要がある場合にオーバーライドするメソッドです。 ほかのすべての追加メソッドでは追跡を行いません。オーバーライドするメソッドは、通常、メソッドのスーパークラスのバージョンの呼び出しを含む必要があります。
super.addImpl(comp, constraints, index)
Container
内の addImpl
comp
- 追加されるコンポーネントconstraints
- このコンポーネントの配置制約を表現するオブジェクトindex
- コンポーネントを挿入するコンテナのリスト内での位置。-1
は最後に挿入することを意味する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 (N は現在のレイヤーのコンポーネント数) の範囲内の int 値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 Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。