public class JLayeredPane extends JComponent implements Accessible
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);
or
layeredPane.add(child, new Integer(10));
Componentのレイヤー属性を設定するには、
layeredPaneParent.setLayer(child, 10)
をコンポーネントの親であるJLayeredPane上で呼び出すこともできます。レイヤーは、子を親に追加する前に設定する必要があります。
番号が大きいレイヤーほど上に表示されます。したがって、次のように各コンポーネントに個別のレイヤー番号と文字を割り当てることにより、
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, 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
通常のペイント/イベント方式では、1aがいちばん下、5aがいちばん上に表示されます。
注: これらのレイヤーは単に論理的な構造であり、LayoutManagerは、レイヤー設定には関係なく、このコンテナのすべての子コンポーネントに影響します。
警告: Swingはスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。1.4以降、すべてのJavaBeans(tm)用の長期間の格納サポートがjava.beansパッケージに追加されています。XMLEncoderを参照してください。
| 修飾子と型 | クラスと説明 |
|---|---|
protected class |
JLayeredPane.AccessibleJLayeredPane
このクラスは
JLayeredPaneクラスのアクセシビリティ・サポートを実装しています。 |
JComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.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
ポップアップ・レイヤーを定義する簡易オブジェクトです。
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, 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のレイヤー・プロパティを返します。このメソッドは、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のレイヤー・プロパティを設定します。
|
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に移動します。0がいちばん上、-1がいちばん下です。 |
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUIadd, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic 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
JFrameprotected void addImpl(Component comp, Object constraints, int index)
ContaineraddLayoutComponentメソッドを使用して、指定された制約オブジェクトを使ってこのコンテナのレイアウトにコンポーネントを追加することをレイアウト・マネージャに通知します。
制約は、使用されているレイアウト・マネージャで定義されます。たとえば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)
このメソッドではレイアウトに関連する情報が変更されるため、コンポーネント階層が無効になります。コンテナがすでに表示されている場合は、追加されたコンポーネントを表示するために、あとで階層を検証する必要があります。
addImpl 、クラス: Containercomp - 追加されるコンポーネントconstraints - このコンポーネントのレイアウト制約を表現するオブジェクトindex - コンポーネントを挿入するコンテナのリスト内での位置。-1は最後に挿入することを意味するContainer.add(Component), Container.add(Component, int), Container.add(Component, java.lang.Object), Container.invalidate(), LayoutManager, LayoutManager2public void remove(int index)
remove 、クラス: Containerindex - 削除するコンポーネントを指定したint値getIndexOf(java.awt.Component)public void removeAll()
removeAll 、クラス: ContainerContainer.add(java.awt.Component), Container.remove(int), Container.invalidate()public boolean isOptimizedDrawingEnabled()
isOptimizedDrawingEnabled 、クラス: JComponentJComponent.isOptimizedDrawingEnabled()public static void putLayer(JComponent c, int layer)
c - 移動するJComponentlayer - 移動先のレイヤーを指定するint値setLayer(java.awt.Component, int)public static int getLayer(JComponent c)
c - チェック対象のJComponentpublic static JLayeredPane getLayeredPaneAbove(Component c)
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 - チェック対象のComponentpublic int getIndexOf(Component c)
c - チェック対象のComponentpublic 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 - チェック対象のComponentgetComponentCountInLayer(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)
paint 、クラス: JComponentg - ペイント先となる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にはなりません。paramString 、クラス: JComponentpublic AccessibleContext getAccessibleContext()
getAccessibleContext 、インタフェース: AccessiblegetAccessibleContext、クラス: Component バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.