|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JRootPane
JFrame、JDialog、JWindow、JApplet、および JInternalFrame が内部で使用する軽量コンテナです。ルート区画が提供するタスク指向の情報については、「The Java Tutorial」の「How to Use Root Panes」を参照してください。
次のイメージはルート区画を使用するクラス間の関係を示します。
「重量」コンポーネント (ピアまたはホストシステム上のネイティブコンポーネントに委譲するコンポーネント) は濃く重そうなボックスで示されています。4 つの重量 JFC/Swing コンテナ (JFrame、JDialog、JWindow、および JApplet) は、それらが拡張する AWT クラスとの関連で示されています。Swing ライブラリ内の重量コンテナはこれら 4 つのコンポーネントだけです。また、軽量コンテナの JInternalPane も示されています。これら 5 つの JFC/Swing コンテナはすべて RootPaneContainer インタフェースを実装し、処理を JRootPane (一番上の小さな「ハンドル」が付いている) に委譲します。
注: 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
このクラスは JRootPane クラス用のユーザ補助機能のサポートを実装しています。 |
protected class |
JRootPane.RootLayout
layeredPane、glassPane、および menuBar のレイアウトを処理するカスタムレイアウトマネージャです。 |
クラス javax.swing.JComponent から継承した内部クラス |
JComponent.AccessibleJComponent |
クラス java.awt.Container から継承した内部クラス |
Container.AccessibleAWTContainer |
クラス java.awt.Component から継承した内部クラス |
Component.AccessibleAWTComponent |
フィールドの概要 | |
protected Container |
contentPane
コンテンツ区画です。 |
protected JButton |
defaultButton
区画がフォーカスと、Enter キーを押すなどの UI 固有のアクションを持ったときにアクティブになるボタンです。 |
protected javax.swing.JRootPane.DefaultAction |
defaultPressAction
推奨されていません。 Java 2 プラットフォーム 1.3 以降使われていません。 |
protected javax.swing.JRootPane.DefaultAction |
defaultReleaseAction
推奨されていません。 Java 2 プラットフォーム 1.3 以降使われていません。 |
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 |
インタフェース java.awt.image.ImageObserver から継承したフィールド |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
コンストラクタの概要 | |
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()
この JRootPane に関連した AccessibleContext を返します。 |
Container |
getContentPane()
ルート区画が親になるコンポーネントを保持するコンテナである、コンテンツ区画を返します。 |
JButton |
getDefaultButton()
この JRootPane の現在のデフォルトボタンを返します。 |
Component |
getGlassPane()
この JRootPane の現在のガラス区画を返します。 |
JMenuBar |
getJMenuBar()
階層化区画からメニューバーを返します。 |
JLayeredPane |
getLayeredPane()
ルート区画が使用する階層化区画を返します。 |
JMenuBar |
getMenuBar()
推奨されていません。 Swing バージョン 1.0.3 で getJMenuBar() に置き換えられました。 |
RootPaneUI |
getUI()
このコンポーネントを描画する L&F オブジェクトを返します。 |
String |
getUIClassID()
このコンポーネントを描画する L&F クラスの名前を指定する文字列を返します。 |
boolean |
isFocusCycleRoot()
JRootPane をフォーカスサイクルのルートにします。 |
boolean |
isOptimizedDrawingEnabled()
GlassPane と ContentPane は同じ境界を持つため、JRootPane はその子をタイリングせず、false を返します。 |
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) に置き換えられました。 |
void |
setUI(RootPaneUI ui)
このコンポーネントを描画する L&F オブジェクトを設定します。 |
void |
updateUI()
L&F が変更されたことを示す UIFactory からの通知です。 |
クラス 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()
メソッドの詳細 |
public RootPaneUI getUI()
public void setUI(RootPaneUI ui)
ui
- LabelUI L&F オブジェクトUIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
JComponent
内の updateUI
JComponent.updateUI()
public String getUIClassID()
JComponent
内の getUIClassID
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
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
- コンポーネントコンテンツに使用する ContainerIllegalComponentStateException
- コンテンツ区画パラメータが null の場合 (実行時例外)public Container getContentPane()
public void setLayeredPane(JLayeredPane layered)
layered
- 使用する JLayeredPaneIllegalComponentStateException
- 階層化区画パラメータが null の場合 (実行時例外)public JLayeredPane getLayeredPane()
public void setGlassPane(Component glass)
glass
- この JRootPane のガラス区画として使用する Componentpublic Component getGlassPane()
setGlassPane(java.awt.Component)
public boolean isFocusCycleRoot()
JComponent
内の isFocusCycleRoot
JComponent.isFocusCycleRoot()
public boolean isValidateRoot()
コンポーネントおよびその子孫の再配置の延期された要求、つまり revalidate() の呼び出しは、JRootPane または JScrollPane のどちらかに転送されます。これはどちらのクラスも isValidateRoot() をオーバーライドして true を返すためです。
JComponent
内の isValidateRoot
JComponent.isValidateRoot()
public boolean isOptimizedDrawingEnabled()
JComponent
内の isOptimizedDrawingEnabled
public void addNotify()
JComponent
内の addNotify
javax.swing.JComponent
からコピーされたタグ:JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)
public void removeNotify()
JComponent
内の removeNotify
addNotify()
public void setDefaultButton(JButton defaultButton)
JRootPane
の現在のデフォルトボタンを設定します。デフォルトボタンは、ボタンにキーボードフォーカスがあるかどうかにかかわらず、RootPane で UI 定義の起動イベント (通常は Enter キー) が発生したときに起動されるボタンです (RootPane 内に JTextPane などの起動イベントを消費する別のコンポーネントがある場合を除く)。デフォルトの起動が機能するには、ボタンは起動が発生した時点で RootPane の使用可能な子孫である必要があります。この RootPane からデフォルトボタンを削除するには、このプロパティを null
に設定します。default
- デフォルトボタンになる JButtonJButton.isDefaultButton()
public JButton getDefaultButton()
protected void addImpl(Component comp, Object constraints, int index)
Container
内の addImpl
java.awt.Container
からコピーされたタグ:comp
- 追加されるコンポーネントconstraints
- このコンポーネントの配置条件を表現するオブジェクトindex
- コンポーネントを挿入するコンテナのリスト内での位置。-1
は最後に挿入することを意味するContainer.add(java.awt.Component)
,
Container.add(java.awt.Component, int)
,
Container.add(java.awt.Component, java.lang.Object)
,
LayoutManager
protected String paramString()
null
にはなりません。JComponent
内の paramString
public AccessibleContext getAccessibleContext()
Accessible
内の getAccessibleContext
JComponent
内の getAccessibleContext
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.