|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.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
オブジェクトとまったく同じように管理されますが、子コンポーネント同士がオーバーラップした場合には、上位のレイヤのコンポーネントの方が下位レイヤのコンポーネントより上に表示されます。
各レイヤには個別の整数値が割り当てられます。Component
のレイヤ属性を設定するには、add 呼び出しで Integer
オブジェクトを渡します。
例:
layeredPane.add(child, JLayeredPane.DEFAULT_LAYER); または 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 を実行するアプリケーション間の RMI に適しています。1.4 では、すべての JavaBeansTM の長期間の運用に対するサポートが java.beans
パッケージに追加されました。XMLEncoder
を参照してください。
入れ子クラスの概要 | |
protected class |
JLayeredPane.AccessibleJLayeredPane
このクラスは JLayeredPane クラス用のユーザ補助機能のサポートを実装しています。 |
クラス javax.swing.JComponent から継承した入れ子クラス |
|
クラス java.awt.Container から継承した入れ子クラス |
|
クラス java.awt.Component から継承した入れ子クラス |
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 |
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 |
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 つの制限を定義します。
コンポーネントがこのコンテナ、またはその子に登録済の場合、このコンテナに追加する前に削除されます。
これは、プログラムがコンテナへのすべての追加要求を追跡する必要がある場合にオーバーライドするメソッドです。他のすべての追加メソッドでは追跡を行いません。オーバーライドするメソッドは、通常、メソッドのスーパークラスのバージョンの呼び出しを含む必要があります。
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 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 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 Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.