|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JRootPane
public class 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
を取得できます。
JRootPane
の構造を示しています。JRootPane
は glassPane
、menuBar
(オプション)、contentPane
から成ります (JLayeredPane
は menuBar
と contentPane
を管理する)。glassPane
はすべてのコンポーネントの一番上に置かれ、マウスの動作を捕捉します。glassPane
は (contentPane
と同様に)、任意コンポーネントにすることができるので、描画のために glassPane
をセットアップすることもできます。glassPane
上の線とイメージは、境界に制限されることなく、下のフレーム全体を覆うことができます。
menuBar
コンポーネントはなくてもかまいませんが、layeredPane
、contentPane
、および glassPane
は必ず必要です。これらを null
に設定しようとすると、例外が生成されます。
JRootPane
にコンポーネントを追加するには (オプションのメニューバーと異なり)、次のように JRootPane
の contentPane
にオブジェクトを追加します。
rootPane.getContentPane().add(child);同様の原則が、レイアウトマネージャの設定、コンポーネントの削除、および子のリスト表示などでも適用されます。これらのメソッドはすべて
JRootPane
ではなく、contentPane
で呼び出されます。注:contentPane
のデフォルトのレイアウトマネージャはBorderLayout
マネージャです。ただし、JRootPane
はカスタムLayoutManager
を使用します。したがって、JRootPane
に追加したコンポーネントのレイアウトマネージャを変更したいときは、必ず次のようなコードを使用してください。rootPane.getContentPane().setLayout(new BoxLayout());
JMenuBar
コンポーネントが JRootPane
で設定された場合は、フレームの上端に沿って配置されます。contentPane
は、残りの領域に収まるように位置とサイズが調整されます (JMenuBar
と contentPane
は layeredPane
コンポーネントの JLayeredPane.FRAME_CONTENT_LAYER
レイヤに追加される)。
layeredPane
は JRootPane
のすべての子の親 (メニューの直接の親、および contentPane
に追加されたすべてのコンポーネントの親の両方) です。layeredPane は、複数のレイヤでコンポーネントを追加する機能を提供する JLayeredPane
のインスタンスです。この機能は、メニューポップアップやダイアログボックスでの作業およびドラッグなど、コンポーネントを区画内のほかのすべてのコンポーネントの一番上に配置する必要がある場合にとても便利です。
glassPane
は JRootPane
のほかのすべてのコンポーネントの一番上に置かれます。これにより、ほかのすべてのコンポーネントの上に描画するのに都合のよい場所が提供され、ドラッグや描画のときに便利なマウスイベントの捕捉が可能になります。glassPane
で setVisible
を使用すると、いつ glassPane
がほかの子の上に表示されるかを制御できます。デフォルトでは、glassPane
は可視ではありません。
JRootPane
によって使用されるカスタム LayoutManager
は次のことを保証します。
glassPane
は JRootPane
(境界 - インセット) の表示可能領域全体を埋める
layeredPane
は JRootPane
(境界 - インセット) の表示可能領域全体を埋める
menuBar
は layeredPane
の上端に配置される
contentPane
は、menuBar
を除いた (存在する場合) 表示可能領域全体を埋めるJRootPane
のビュー階層にあるほかのビューはすべて無視されます。
JRootPane
の LayoutManager
を置換する場合は、これらのビューすべてを管理する必要があります。したがって、通常は JRootPane
ではなく contentPane
のレイアウトマネージャを変更するようにしてください。
Swing のペイント アーキテクチャでは、不透明な JComponent
が他のすべてのコンポーネントの上にある包含関係の階層に含まれている必要があります。通常、これはコンテンツ区画によって提供されます。コンテンツ区画を置き換える場合は、setOpaque(true)
によってコンテンツ区画を不透明にすることをお勧めします。また、コンテンツ区画によって paintComponent
がオーバーライドされる場合は、バックグラウンドを paintComponent
の不透明な色で完全に塗りつぶす必要があります。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。JDK バージョン 1.4 以降、すべての JavaBeans™ の長期間の運用サポートは、java.beans
パッケージに追加されています。詳細は、XMLEncoder
を参照してください。
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, Component.BltBufferStrategy, Component.FlipBufferStrategy |
フィールドの概要 | |
---|---|
static int |
COLOR_CHOOSER_DIALOG
windowDecorationStyle プロパティに使用する定数です。 |
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 以降 |
static int |
ERROR_DIALOG
windowDecorationStyle プロパティに使用する定数です。 |
static int |
FILE_CHOOSER_DIALOG
windowDecorationStyle プロパティに使用する定数です。 |
static int |
FRAME
windowDecorationStyle プロパティに使用する定数です。 |
protected Component |
glassPane
メニューバーとコンテンツ区画にオーバーレイするガラス区画です。 |
static int |
INFORMATION_DIALOG
windowDecorationStyle プロパティに使用する定数です。 |
protected JLayeredPane |
layeredPane
メニューバーとコンテンツ区画を管理する階層化区画です。 |
protected JMenuBar |
menuBar
メニューバーです。 |
static int |
NONE
windowDecorationStyle プロパティに使用する定数です。 |
static int |
PLAIN_DIALOG
windowDecorationStyle プロパティに使用する定数です。 |
static int |
QUESTION_DIALOG
windowDecorationStyle プロパティに使用する定数です。 |
static int |
WARNING_DIALOG
windowDecorationStyle プロパティに使用する定数です。 |
クラス 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()
defaultButton のプロパティの値を返します。 |
Component |
getGlassPane()
この JRootPane の現在のガラス区画を返します。 |
JMenuBar |
getJMenuBar()
階層化区画からメニューバーを返します。 |
JLayeredPane |
getLayeredPane()
ルート区画が使用する階層化区画を返します。 |
JMenuBar |
getMenuBar()
推奨されていません。 Swing バージョン 1.0.3 で getJMenuBar() に置き換えられました。 |
RootPaneUI |
getUI()
このコンポーネントを描画する L&F オブジェクトを返します。 |
String |
getUIClassID()
このコンポーネントを描画する L&F クラスの名前を文字列で返します。 |
int |
getWindowDecorationStyle()
JRootPane が提供する Window 装飾の種類を識別する定数を返します。 |
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)
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 |
setWindowDecorationStyle(int windowDecorationStyle)
JRootPane が提供する装飾の種類 (ボーダ、Window を閉じるためのウィジェット、タイトルなど) を設定します。 |
void |
updateUI()
現在の Look & Feel からの値に UI プロパティをリセットします。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
---|
public static final int NONE
JRootPane
がどんな Window 装飾も提供しないように指示します。
public static final int FRAME
JRootPane
が Frame に適した装飾を提供するように指示します。
public static final int PLAIN_DIALOG
JRootPane
が Dialog に適した装飾を提供するように指示します。
public static final int INFORMATION_DIALOG
JRootPane
が、情報メッセージを表示するための Dialog に適した装飾を提供するように指示します。
public static final int ERROR_DIALOG
JRootPane
が、エラーメッセージを表示するための Dialog に適した装飾を提供するように指示します。
public static final int COLOR_CHOOSER_DIALOG
JRootPane
が、JColorChooser
を表示するための Dialog に適した装飾を提供するように指示します。
public static final int FILE_CHOOSER_DIALOG
JRootPane
が、JFileChooser
を表示するための Dialog に適した装飾を提供するように指示します。
public static final int QUESTION_DIALOG
JRootPane
が、ユーザにクエスチョンを表示するための Dialog に適した装飾を提供するように指示します。
public static final int WARNING_DIALOG
JRootPane
が、警告メッセージを表示するための Dialog に適切な装飾を提供するように指示します。
protected JMenuBar menuBar
protected Container contentPane
protected JLayeredPane layeredPane
protected Component glassPane
protected JButton defaultButton
@Deprecated protected javax.swing.JRootPane.DefaultAction defaultPressAction
JRootPane
の ActionMap
の Action
を置き換えます。詳細は、キーバインディングの仕様を参照してください。
defaultButton
@Deprecated protected javax.swing.JRootPane.DefaultAction defaultReleaseAction
JRootPane
の ActionMap
の Action
を置き換えます。詳細は、キーバインディングの仕様を参照してください。
defaultButton
コンストラクタの詳細 |
---|
public JRootPane()
JRootPane
を作成し、glassPane
、layeredPane
、および contentPane
を設定します。
メソッドの詳細 |
---|
public int getWindowDecorationStyle()
JRootPane
が提供する Window 装飾の種類を識別する定数を返します。
NONE
、FRAME
、PLAIN_DIALOG
、INFORMATION_DIALOG
、ERROR_DIALOG
、COLOR_CHOOSER_DIALOG
、FILE_CHOOSER_DIALOG
、QUESTION_DIALOG
、または WARNING_DIALOG
のどれかsetWindowDecorationStyle(int)
public void setWindowDecorationStyle(int windowDecorationStyle)
JRootPane
が提供する装飾の種類 (ボーダ、Window を閉じるためのウィジェット、タイトルなど) を設定します。デフォルトの設定は Window 装飾なし (NONE
) です。
これはヒントに過ぎず、一部の Look & Feel はこれをサポートしていません。これはバウンドプロパティです。
windowDecorationStyle
- 提供する Window 装飾を識別する定数
IllegalArgumentException
- style
が NONE
、FRAME
、PLAIN_DIALOG
、INFORMATION_DIALOG
、ERROR_DIALOG
、COLOR_CHOOSER_DIALOG
、FILE_CHOOSER_DIALOG
、QUESTION_DIALOG
、または WARNING_DIALOG
のどれでもない場合JDialog.setDefaultLookAndFeelDecorated(boolean)
,
JFrame.setDefaultLookAndFeelDecorated(boolean)
,
LookAndFeel.getSupportsWindowDecorations()
public RootPaneUI getUI()
LabelUI
オブジェクト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()
layeredPane
を作成するためにコンストラクタのメソッドによって呼び出されます。デフォルトでは、新しい JLayeredPane
を作成します。
layeredPane
protected Container createContentPane()
contentPane
を作成するためにコンストラクタのメソッドによって呼び出されます。デフォルトでは、このメソッドは新しい JComponent
を作成し、LayoutManager
として BorderLayout
を設定します。
contentPane
protected Component createGlassPane()
glassPane
を作成するためにコンストラクタのメソッドによって呼び出されます。デフォルトでは、このメソッドは可視性を false に設定して新しい JComponent
を作成します。
glassPane
protected LayoutManager createRootLayout()
layoutManager
を作成します。
LayoutManager
public void setJMenuBar(JMenuBar menu)
menu
- 追加する JMenuBar
@Deprecated public void setMenuBar(JMenuBar menu)
setJMenuBar(JMenuBar menu)
に置き換えられました。
menu
- 追加する JMenuBar
public JMenuBar getJMenuBar()
JMenuBar
@Deprecated public JMenuBar getMenuBar()
getJMenuBar()
に置き換えられました。
JMenuBar
public void setContentPane(Container content)
Swing のペイント アーキテクチャでは、包含関係の階層に不透明な JComponent
が含まれている必要があります。通常、これはコンテンツ区画よって提供されます。コンテンツ区画を置き換える場合は、不透明な JComponent
と置き換えることをお勧めします。
content
- コンポーネントコンテンツに使用する Container
IllegalComponentStateException
- コンテンツ区画パラメータが null
の場合 (実行時例外)public Container getContentPane()
Container
public void setLayeredPane(JLayeredPane layered)
JMenuBar
を保持します。
layered
- 使用する JLayeredPane
IllegalComponentStateException
- 階層化区画パラメータが null
の場合 (実行時例外)public JLayeredPane getLayeredPane()
JMenuBar
を保持します。
JLayeredPane
public void setGlassPane(Component glass)
Component
がこのルート区画のガラス区画になるように設定します。ルート区画が入力イベントを捕捉する必要があるときには必ず可視にされるので、通常、ガラス区画は軽量の透明なコンポーネントである必要があります。たとえば、DefaultDesktop を使用しているときは、1 つの JInternalFrame
だけがアクティブになり、非アクティブな JInternalFrame
のガラス区画は、非アクティブな JInternalFrame
をクリックしてアクティブにできるように可視にされます。
glass
- この JRootPane
のガラス区画として使用する Component
NullPointerException
- glass
パラメータが null
の場合public Component getGlassPane()
JRootPane
の現在のガラス区画を返します。
setGlassPane(java.awt.Component)
public boolean isValidateRoot()
JRootPane
の下位オブジェクトが revalidate
を呼び出した場合、ここから下へ向かって検証を行います。 コンポーネントおよびその子孫の再配置が延期された要求です。たとえば、revalidate
の呼び出しは、JRootPane
または JScrollPane
のどちらかに転送されます。これはどちらのクラスも isValidateRoot
をオーバーライドして true を返すためです。
JComponent
内の isValidateRoot
JComponent.isValidateRoot()
public boolean isOptimizedDrawingEnabled()
glassPane
と contentPane
は同じ境界を持つため、JRootPane
はその子をタイリングせず、false を返します。一方、通常 glassPane
は不可視なので、glassPane
が可視でない場合、true を返します。つまり、このメソッドの戻り値は glassPane
の可視性によって異なります。
JComponent
内の isOptimizedDrawingEnabled
public void addNotify()
SystemEventQueueUtils
に登録します。
JComponent
内の addNotify
JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)
public void removeNotify()
SystemEventQueueUtils
から登録解除します。
JComponent
内の removeNotify
addNotify()
public void setDefaultButton(JButton defaultButton)
defaultButton
プロパティを設定して、この JRootPane
の現在のデフォルトボタンを指定します。デフォルトボタンは、ボタンにキーボードフォーカスがあるかどうかにかかわらず、ルート区画で UI 定義の起動イベント (通常は Enter キー) が発生したときに起動されるボタンです (ルート区画内に JTextPane
などの起動イベントを消費する別のコンポーネントがある場合を除く)。デフォルトの起動が機能するには、ボタンは起動が発生した時点でルート区画の使用可能な子孫である必要があります。このルート区画からデフォルトボタンを削除するには、このプロパティを null
に設定します。
defaultButton
- デフォルトボタンになる JButton
JButton.isDefaultButton()
public JButton getDefaultButton()
defaultButton
のプロパティの値を返します。
JButton
setDefaultButton(javax.swing.JButton)
protected void addImpl(Component comp, Object constraints, int index)
Container
内の addImpl
comp
- 拡張されるコンポーネントconstraints
- 遵守されるべき制約index
- インデックスContainer.add(Component)
,
Container.add(Component, int)
,
Container.add(Component, java.lang.Object)
,
LayoutManager
,
LayoutManager2
protected String paramString()
JRootPane
の文字列表現を返します。このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なります。返される文字列は空の場合がありますが、null
にはなりません。
JComponent
内の paramString
JRootPane
の文字列表現public AccessibleContext getAccessibleContext()
JRootPane
に関連付けられた AccessibleContext
を返します。ルート区画の場合、AccessibleContext
は AccessibleJRootPane
の形式を取ります。必要な場合は、新しい AccessibleJRootPane
インスタンスが作成されます。
Accessible
内の getAccessibleContext
JComponent
内の getAccessibleContext
JRootPane
の AccessibleContext
として機能する AccessibleJRootPane
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。