|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JRootPane
コンテナ階層の基本コンポーネントです。JComponent が JFC/Swing に対する基本コンポーネントであるように、JRootPane は JFC/Swing ウィンドウ、フレーム、および区画コンテナに対する基本コンポーネントです。ただし、ほかのクラスは継承を使って JComponent の機能を利用しますが、コンテナクラスは処理を JRootPane のインスタンスに委譲します。そのようなコンテナには、重量コンテナの JFrame、JDialog、JWindow、および JApplet と、軽量コンテナの JInternalFrame があります。
次の図はこれらの関係を示しています。
注: JComponent のメソッド getRootPane
を使うと、指定されたコンポーネントを格納している JRootPane を取得できます。
![]() |
menuBar コンポーネントはなくてもかまいませんが、layeredPane、contentPane、および glassPane は必ず必要です。これらを null に設定しようとすると、例外が生成されます。
contentPane
は JRootPane のすべての子の親である必要があります。次のように直接 JRootPane に追加するのではなく、
rootPane.add(child);次のように JRootPane の contentPane に追加します。
rootPane.getContentPane().add(child);同様の原則が、レイアウトマネージャの設定、コンポーネントの削除、および子のリスト表示などでも適用されます。これらのメソッドはすべて JRootPane ではなく、
contentPane
で呼び出されます。
注:JMenuBar コンポーネントが JRootPane で設定された場合は、フレームの上端に沿って配置されます。contentPane
のデフォルトのレイアウトマネージャは BorderLayout マネージャです。ただし、JRootPane はカスタム LayoutManager を使用します。したがって、JRootPane に追加したコンポーネントのレイアウトマネージャを変更したいときは、必ず次のようなコードを使ってください。rootPane.getContentPane().setLayout(new BoxLayout());
contentPane
は、残りの領域に収まるように位置とサイズが調整されます (JMenuBar と contentPane
は layeredPane
コンポーネントの JLayeredPane.FRAME_CONTENT_LAYER レイヤに追加される)。
layeredPane
は JRootPane のすべての子の親です。layeredPane は、複数のレイヤでコンポーネントを追加する機能を提供する JLayeredPane のインスタンスです。この機能は、メニューポップアップやダイアログボックスでの作業およびドラッグなど、区画内のほかのすべてのコンポーネントの一番上にコンポーネントを配置する必要がある状況でとても便利です。
glassPane
は JRootPane のほかのすべてのコンポーネントの一番上に置かれます。これにより、ほかのすべてのコンポーネントの上に描画するための便利な場所が提供され、ドラッグや描画のときに便利な、マウスイベントの捕捉が可能になります。glassPane で setVisible
を使うと、いつ glassPane
がほかの子の上に表示されるかを制御できます。デフォルトでは、glassPane
は可視ではありません。
JRootPane によって使用されるカスタム LayoutManager は以下のことを保証します。
glassPane
がある場合、glassPane は JRootPane (境界 - インセット) の表示可能領域全体を埋める
layeredPane
は JRootPane (境界 - インセット) の表示可能領域全体を埋める
menuBar
は layeredPane() の上端に配置される
contentPane
は、MenuBar を除いた (存在する場合) 表示可能領域全体を埋める
JRootPane の LayoutManager を置換する場合は、これらのビューすべてを管理する必要があります。したがって、通常は JRootPane ではなく contentPane
のレイアウトマネージャを変更するようにしてください。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。
JLayeredPane
,
JMenuBar
,
JWindow
,
JFrame
,
JDialog
,
JApplet
,
JInternalFrame
,
JComponent
,
BoxLayout
,
Mixing Heavy and Light Components, 直列化された形式内部クラスの概要 | |
protected class |
JRootPane.AccessibleJRootPane
オブジェクトのユーザ補助機能を取得するために使用するクラスです。 |
protected class |
JRootPane.RootLayout
layeredPane、glassPane、および menuBar のレイアウトを処理するカスタムレイアウトマネージャです。 |
クラス javax.swing.JComponent から継承した内部クラス |
JComponent.AccessibleJComponent |
フィールドの概要 | |
protected Container |
contentPane
コンテンツ区画です。 |
protected JButton |
defaultButton
区画がフォーカスと、Enter キーを押すなどの UI 固有のアクションを持ったときにアクティブになるボタンです。 |
protected javax.swing.JRootPane.DefaultAction |
defaultPressAction
defaultButton が押されたときに実行されるアクションです。 |
protected javax.swing.JRootPane.DefaultAction |
defaultReleaseAction
defaultButton が離されたときに実行されるアクションです。 |
protected Component |
glassPane
メニューバーとコンテンツ区画にオーバーレイするガラス区画です。 |
protected JLayeredPane |
layeredPane
メニューバーとコンテンツ区画を管理する階層化区画です。 |
protected JMenuBar |
menuBar
メニューバーです。 |
クラス 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 |
コンストラクタの概要 | |
JRootPane()
JRootPane を作成し、glassPane、LayeredPane、および contentPane を設定します。 |
メソッドの概要 | |
protected void |
addImpl(Component comp,
Object constraints,
int index)
ガラスコンポーネントの位置が 0 の子に対して強制するためにオーバーライドされます。 |
void |
addNotify()
自身を新しいルート区画として SystemEventQueueUtils に登録します。 |
protected Container |
createContentPane()
デフォルトの contentPane を作成するためにコンストラクタのメソッドによって呼び出されます。 |
protected Component |
createGlassPane()
デフォルトの glassPane を作成するためにコンストラクタのメソッドによって呼び出されます。 |
protected JLayeredPane |
createLayeredPane()
デフォルトの layeredPane を作成するためにコンストラクタのメソッドによって呼び出されます。 |
protected LayoutManager |
createRootLayout()
デフォルトの layoutManager を作成するためにコンストラクタのメソッドによって呼び出されます。 |
AccessibleContext |
getAccessibleContext()
この JComponent に関連付けられている AccessibleContext を取得します。 |
Container |
getContentPane()
ルート区画が親になるコンポーネントを保持するコンテナである、コンテンツ区画を返します。 |
JButton |
getDefaultButton()
この JRootPane の現在のデフォルトボタンを返します。 |
Component |
getGlassPane()
この JRootPane の現在のガラス区画を返します。 |
JMenuBar |
getJMenuBar()
階層化区画からメニューバーを返します。 |
JLayeredPane |
getLayeredPane()
ルート区画が使用する階層化区画を取得します。 |
JMenuBar |
getMenuBar()
推奨されません。 Swing バージョン 1.0.3 で getJMenubar() に置き換えられました。 |
boolean |
isFocusCycleRoot()
JRootPane をフォーカスサイクルのルートにします。 |
boolean |
isValidateRoot()
この JRootPane の下位オブジェクトが revalidate を呼び出した場合、ここから下へ向かって検証を行います。 |
protected String |
paramString()
この JRootPane の文字列表現を返します。 |
void |
removeNotify()
自身を SystemEventQueueUtils から登録解除します。 |
void |
setContentPane(Container content)
ルート区画が親になるコンポーネントを保持するコンテナである、コンテンツ区画を設定します。 |
void |
setDefaultButton(JButton defaultButton)
この JRootPane の現在のデフォルトボタンを設定します。 |
void |
setGlassPane(Component glass)
指定した Component がこのルート区画のガラス区画になるように設定します。 |
void |
setJMenuBar(JMenuBar menu)
階層化区画で使用されるメニューバーを追加または変更します。 |
void |
setLayeredPane(JLayeredPane layered)
ルート区画に階層化区画を設定します。 |
void |
setMenuBar(JMenuBar menu)
推奨されません。 Swing バージョン 1.0.3 で setJMenuBar(JMenuBar menu) に置き換えられました。 |
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
フィールドの詳細 |
protected JMenuBar menuBar
protected Container contentPane
protected JLayeredPane layeredPane
protected Component glassPane
protected JButton defaultButton
protected javax.swing.JRootPane.DefaultAction defaultPressAction
defaultButton
protected javax.swing.JRootPane.DefaultAction defaultReleaseAction
defaultButton
コンストラクタの詳細 |
public JRootPane()
メソッドの詳細 |
protected JLayeredPane createLayeredPane()
protected Container createContentPane()
protected Component createGlassPane()
protected LayoutManager createRootLayout()
public void setJMenuBar(JMenuBar menu)
menu
- 追加する JMenuBarpublic void setMenuBar(JMenuBar menu)
setJMenuBar(JMenuBar menu)
に置き換えられました。public JMenuBar getJMenuBar()
public JMenuBar getMenuBar()
getJMenubar()
に置き換えられました。public void setContentPane(Container content)
content
- コンポーネントコンテンツに使用する Containerpublic Container getContentPane()
public void setLayeredPane(JLayeredPane layered)
layered
- 使用する JLayeredPanepublic JLayeredPane getLayeredPane()
public void setGlassPane(Component glass)
glass
- この JRootPane のガラス区画として使用する Componentpublic Component getGlassPane()
setGlassPane(java.awt.Component)
public boolean isFocusCycleRoot()
JComponent.isFocusCycleRoot()
public boolean isValidateRoot()
コンポーネントおよびその子孫の再配置の延期された要求、つまり revalidate() の呼び出しは、JRootPane または JScrollPane のどちらかに転送されます。これはどちらのクラスも isValidateRoot() をオーバーライドして true を返すためです。
JComponent.isValidateRoot()
public void addNotify()
public void removeNotify()
public void setDefaultButton(JButton defaultButton)
defaultButton
- デフォルトボタンになる JButtonJButton.isDefaultButton()
public JButton getDefaultButton()
protected void addImpl(Component comp, Object constraints, int index)
protected String paramString()
null
にはなりません。
JFC コンポーネントの新しい側面についての情報を返すには、paramString() をオーバーライドします。
public AccessibleContext getAccessibleContext()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |