モジュール java.desktop
パッケージ java.awt

クラスFrame

  • すべての実装されたインタフェース:
    ImageObserver, MenuContainer, Serializable, Accessible
    直系の既知のサブクラス:
    JFrame


    public class Frame
    extends Window
    implements MenuContainer
    Frameは、タイトルとボーダーを持つトップ・レベルのウィンドウです。

    フレームのサイズには、ボーダー用として指定された領域が含まれます。 ボーダー領域の寸法はgetInsetsメソッドで取得できます。ただし、ボーダー領域の寸法はプラットフォームに依存するため、packまたはshowのどちらかを呼び出すことによりフレームを表示可能にしなければ有効なイン・セット値は取得できません。 ボーダー領域はフレーム全体のサイズに含まれているため、フレームの一部がボーダーに隠れてしまいます。このため、サブコンポーネントを描画および表示するための領域は、左上隅の位置が(insets.left, insets.top)であり、幅がwidth - (insets.left+insets.right)、高さがheight - (insets.top+insets.bottom)の矩形に制限されます。

    フレームのデフォルト・レイアウトは、BorderLayoutです。

    フレームはネイティブな装飾(FrameTitlebar)を持つことができ、setUndecoratedでこれを無効化できます。 フレームがdisplayableの状態でないときにだけ無効化できます。

    マルチスクリーン環境では、Frame(GraphicsConfiguration)またはFrame(String title, GraphicsConfiguration)Frameを構築することにより、別のスクリーン・デバイス上にFrameを生成できます。 GraphicsConfigurationオブジェクトは、ターゲット画面デバイスのいずれかのGraphicsConfigurationオブジェクトです。

    デスクトップ・エリアが、物理的に複数のスクリーン・デバイスにまたがる仮想デバイス・マルチスクリーン環境では、すべての設定の境界は仮想座標体系を基準にしています。 仮想座標体系の原点は物理的なプライマリ・スクリーンの左上隅にあります。 仮想デバイスのプライマリ・スクリーンの位置によっては、次の図に示す通り負の座標も可能です。

    3つの物理的スクリーンと1つの物理的なプライマリ・スクリーンを含む仮想デバイスの図。 プライマリ・スクリーンは(0,0)座標を示し、ほかの物理的スクリーンは(-80,-100)座標を示す。

    このような環境では、setLocationを呼び出すとき、このメソッドに仮想座標を渡す必要があります。 同様に、FramegetLocationOnScreenを呼び出すと、仮想デバイス座標が返されます。 仮想座標系内の原点を検索するには、GraphicsConfigurationgetBoundsメソッドを呼び出します。

    次のコードでは、Frameの位置を対応するGraphicsConfigurationの物理的スクリーンの原点を基準にして(10, 10)に設定します。 GraphicsConfigurationの境界が考慮されない場合、Frameの位置は仮想座標系を基準にして(10, 10)に設定され、指定されたGraphicsConfigurationの物理的スクリーンとは異なる可能性のある物理的なプライマリ・スクリーンに表示されます。

          Frame f = new Frame(GraphicsConfiguration gc);
          Rectangle bounds = gc.getBounds();
          f.setLocation(10 + bounds.x, 10 + bounds.y);
     

    フレームは次の型のWindowEventを生成できます。

    • WINDOW_OPENED
    • WINDOW_CLOSING:
      このイベントを処理する際に、プログラムが明示的にウィンドウの非表示も破棄も行わない場合、ウィンドウ・クローズの操作は取り消されます。
    • WINDOW_CLOSED
    • WINDOW_ICONIFIED
    • WINDOW_DEICONIFIED
    • WINDOW_ACTIVATED
    • WINDOW_DEACTIVATED
    • WINDOW_GAINED_FOCUS
    • WINDOW_LOST_FOCUS
    • WINDOW_STATE_CHANGED
    導入されたバージョン:
    1.0
    関連項目:
    WindowEvent, Window.addWindowListener(java.awt.event.WindowListener), 直列化された形式
    • フィールドの詳細

      • DEFAULT_CURSOR

        @Deprecated
        public static final int DEFAULT_CURSOR
        非推奨。 Cursor.DEFAULT_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • CROSSHAIR_CURSOR

        @Deprecated
        public static final int CROSSHAIR_CURSOR
        非推奨。 Cursor.CROSSHAIR_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • SW_RESIZE_CURSOR

        @Deprecated
        public static final int SW_RESIZE_CURSOR
        非推奨。 Cursor.SW_RESIZE_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • SE_RESIZE_CURSOR

        @Deprecated
        public static final int SE_RESIZE_CURSOR
        非推奨。 Cursor.SE_RESIZE_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • NW_RESIZE_CURSOR

        @Deprecated
        public static final int NW_RESIZE_CURSOR
        非推奨。 Cursor.NW_RESIZE_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • NE_RESIZE_CURSOR

        @Deprecated
        public static final int NE_RESIZE_CURSOR
        非推奨。 Cursor.NE_RESIZE_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • N_RESIZE_CURSOR

        @Deprecated
        public static final int N_RESIZE_CURSOR
        非推奨。 Cursor.N_RESIZE_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • S_RESIZE_CURSOR

        @Deprecated
        public static final int S_RESIZE_CURSOR
        非推奨。 Cursor.S_RESIZE_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • W_RESIZE_CURSOR

        @Deprecated
        public static final int W_RESIZE_CURSOR
        非推奨。 Cursor.W_RESIZE_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • E_RESIZE_CURSOR

        @Deprecated
        public static final int E_RESIZE_CURSOR
        非推奨。 Cursor.E_RESIZE_CURSORに置き換えられています。
        関連項目:
        定数フィールド値
      • MAXIMIZED_BOTH

        public static final int MAXIMIZED_BOTH
        この状態ビット・マスクは、フレームが全画面表示、つまり水平および垂直の両方向で最大化されていることを示します。 これはMAXIMIZED_VERT | MAXIMIZED_HORIZの簡易エイリアスです。

        フレームが全画面表示されているかどうかを正しく判定するコーディングはこうなります。

             (state & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH
         

        フレームが水平または垂直のどちらかで最大化されているかどうかを判定するコーディングはこうなります。

             (state & Frame.MAXIMIZED_BOTH) != 0
         
        導入されたバージョン:
        1.4
        関連項目:
        setExtendedState(int), getExtendedState(), 定数フィールド値
    • メソッドの詳細

      • addNotify

        public void addNotify​()
        ネイティブ・スクリーン・リソースに接続することにより、このFrameを表示可能にします。 フレームを表示可能にすると、そのフレームのすべての子も表示可能になります。 このメソッドは、ツールキットによって内部で呼び出され、プログラムから直接呼び出されることはありません。
        オーバーライド:
        addNotify、クラス: Window
        関連項目:
        Component.isDisplayable(), removeNotify()
      • getTitle

        public String getTitle​()
        フレームのタイトルを返します。 タイトルは、フレームのボーダーに表示されます。
        戻り値:
        このフレームのタイトル。このフレームがタイトルを持たない場合は、空の文字列("")
        関連項目:
        setTitle(String)
      • setTitle

        public void setTitle​(String title)
        このフレームのタイトルを、指定された文字列に設定します。
        パラメータ:
        title - フレームのボーダーに表示されるタイトル。 null値は、空の文字列""として処理されます。
        関連項目:
        getTitle()
      • getIconImage

        public Image getIconImage​()
        このフレームのアイコンとして表示されるイメージを返します。

        このメソッドは現在無効であり、下位互換のためだけに残されています。 代わりにWindow.getIconImages()を使用します。

        複数のイメージからなるリストがWindowのアイコンとして指定されていた場合、このメソッドは、リストの最初の項目を返します。

        戻り値:
        このフレームのアイコン・イメージ。このフレームがアイコン・イメージを持たない場合はnull
        関連項目:
        setIconImage(Image), Window.getIconImages(), Window.setIconImages(java.util.List<? extends java.awt.Image>)
      • setIconImage

        public void setIconImage​(Image image)
        このウィンドウのアイコンとして表示されるイメージを設定します。

        このメソッドは、ウィンドウのアイコンとして1つのイメージを指定するために、setIconImages()の代わりに使用できます。

        たとえば次の文を考えてみます。

             setIconImage(image);
         
        は、次と同じです。
             ArrayList<Image> imageList = new ArrayList<Image>();
             imageList.add(image);
             setIconImages(imageList);
         

        注: ネイティブのウィンドウ管理システムでは、ウィンドウを表すために、コンテキスト(ウィンドウ装飾、ウィンドウ・リスト、タスク・バーなど)に応じてさまざまな寸法のさまざまなイメージを使用する場合があります。 また、すべてのコンテキストで単一のイメージを使用することも、まったくイメージを使用しないこともあります。

        オーバーライド:
        setIconImage、クラス: Window
        パラメータ:
        image - 表示されるアイコン・イメージ。
        関連項目:
        Window.setIconImages(java.util.List<? extends java.awt.Image>), Window.getIconImages()
      • getMenuBar

        public MenuBar getMenuBar​()
        このフレームのメニュー・バーを取得します。
        戻り値:
        このフレームのメニュー・バー。このフレームがメニュー・バーを持たない場合はnull
        関連項目:
        setMenuBar(MenuBar)
      • setMenuBar

        public void setMenuBar​(MenuBar mb)
        このフレームのメニュー・バーを、指定されたメニュー・バーに設定します。
        パラメータ:
        mb - 設定されるメニュー・バー。 このパラメータがnullの場合、このフレーム上の既存のメニュー・バーはすべて削除される。
        関連項目:
        getMenuBar()
      • isResizable

        public boolean isResizable​()
        ユーザーがこのフレームのサイズを変更できるかどうかを示します。 デフォルトでは、すべてのフレームが初期状態でサイズ変更可能です。
        戻り値:
        ユーザーがフレームのサイズを変更できる場合はtrue、そうでない場合はfalse
        関連項目:
        setResizable(boolean)
      • setResizable

        public void setResizable​(boolean resizable)
        ユーザーがこのフレームのサイズを変更できるかどうかを設定します。
        パラメータ:
        resizable - このフレームがサイズ変更可能な場合はtrue、そうでない場合はfalse
        関連項目:
        isResizable()
      • setState

        public void setState​(int state)
        このフレームの状態を設定します(現在は使用されません)。

        旧バージョンのJDKでは、フレームの状態はNORMALかICONIFIEDのどちらかでした。 JDK 1.4からはより多くのフレーム状態がサポートされ、ビット・マスクで状態が表されるようになりました。

        以前に開発されたアプリケーションとの互換性を保つため、このメソッドはFrame.NORMALFrame.ICONIFIEDのみ引き続き受け入れます。 このメソッドではフレームのアイコン化の状態だけが変更され、その他のフレーム状態は影響を受けません。 このメソッドに渡された状態が Frame.NORMALでもFrame.ICONIFIEDでもない場合、このメソッドは何の処理も行いません。

        この状態が特定のプラットフォーム上でサポートされていない場合は、状態とgetState()メソッドの戻り値のどちらも変更されません。 アプリケーションは、Toolkit.isFrameStateSupported(int)メソッドを使用して特定の状態がサポートされているかどうかを判定できます。

        フレームが現在画面上に表示されている(Window.isShowing()メソッドがtrueを返す)場合、開発者はWindowStateListenerを介して受信されたWindowEventWindowEvent.getNewState()メソッドの戻り値を検査して、状態が実際に変更されていることを判定するようにしてください。

        フレームが画面上に表示されていない場合は、イベントが生成されない可能性があります。 この場合、開発者は、このメソッドから戻るとすぐに状態が変更されると見なすことができます。 あとで、 setVisible(true)メソッドが呼び出されると、フレームはこの状態を適用しようとします。 この場合はまた、WindowEvent.WINDOW_STATE_CHANGEDイベントを受信することも保証されません。

        パラメータ:
        state - Frame.NORMALまたはFrame.ICONIFIED
        関連項目:
        setExtendedState(int), Window.addWindowStateListener(java.awt.event.WindowStateListener)
      • setExtendedState

        public void setExtendedState​(int state)
        このフレームの状態を設定します。 状態はビット・マスクで表されます。
        • NORMAL
          状態ビットが設定されていないことを示します。
        • ICONIFIED
        • MAXIMIZED_HORIZ
        • MAXIMIZED_VERT
        • MAXIMIZED_BOTH
          MAXIMIZED_HORIZMAXIMIZED_VERTを連結します。

        この状態が特定のプラットフォーム上でサポートされていない場合は、状態とgetExtendedState()メソッドの戻り値のどちらも変更されません。 アプリケーションは、Toolkit.isFrameStateSupported(int)メソッドを使用して特定の状態がサポートされているかどうかを判定できます。

        フレームが現在画面上に表示されている(Window.isShowing()メソッドがtrueを返す)場合、開発者はWindowStateListenerを介して受信されたWindowEventWindowEvent.getNewState()メソッドの戻り値を検査して、状態が実際に変更されていることを判定するようにしてください。

        フレームが画面上に表示されていない場合は、イベントが生成されない可能性があります。 この場合、開発者は、このメソッドから戻るとすぐに状態が変更されると見なすことができます。 あとで、 setVisible(true)メソッドが呼び出されると、フレームはこの状態を適用しようとします。 この場合はまた、WindowEvent.WINDOW_STATE_CHANGEDイベントを受信することも保証されません。

        パラメータ:
        state - フレーム状態の定数のビット・マスク
        導入されたバージョン:
        1.4
        関連項目:
        Window.addWindowStateListener(java.awt.event.WindowStateListener)
      • getState

        public int getState​()
        このフレームの状態を返します(現在は使用されません)。

        旧バージョンのJDKでは、フレームの状態はNORMALかICONIFIEDのどちらかでした。 JDK 1.4からはより多くのフレーム状態がサポートされ、ビット・マスクで状態が表されるようになりました。

        以前のプログラムとの互換性のため、このメソッドはFrame.NORMALFrame.ICONIFIEDを返しますが、フレームのアイコン化の状態だけをレポートし、その他のフレーム状態はレポートしません。

        戻り値:
        Frame.NORMALまたはFrame.ICONIFIEDになります。
        関連項目:
        setState(int), getExtendedState()
      • getExtendedState

        public int getExtendedState​()
        このフレームの状態を返します。 状態はビット・マスクで表されます。
        • NORMAL
          状態ビットが設定されていないことを示します。
        • ICONIFIED
        • MAXIMIZED_HORIZ
        • MAXIMIZED_VERT
        • MAXIMIZED_BOTH
          MAXIMIZED_HORIZMAXIMIZED_VERTを連結します。
        戻り値:
        フレームの状態定数のビット・マスク
        導入されたバージョン:
        1.4
        関連項目:
        setExtendedState(int)
      • setMaximizedBounds

        public void setMaximizedBounds​(Rectangle bounds)
        このフレームの最大化された境界を設定します。

        フレームが最大化された状態にあるときには、デフォルトの境界が提供されます。 このメソッドを使用すると、システムで提供されているこれらの値をオーバーライドすることができます。

        boundsnullの場合、システムで提供されている境界が使用されます。 nullでない場合は、システム提供の値を使用するフィールドにInteger.MAX_VALUEを設定すると、その項目についてはシステム提供の値を使用し、それ以外のフィールドの値をオーバーライドすることができます。

        基本となるプラットフォームが最大化されたウィンドウの位置やサイズの設定をサポートしていない場合があるため、最大化された境界の指定はネイティブ・システムへのヒントとして使用されます。 そのような場合、値を指定しても、最大化された状態のフレームの外観は影響を受けません。

        パラメータ:
        bounds - 最大化された状態で使用される境界
        導入されたバージョン:
        1.4
        関連項目:
        getMaximizedBounds()
      • getMaximizedBounds

        public Rectangle getMaximizedBounds​()
        このフレームの最大化された境界を返します。 Integer.MAX_VALUEを格納するフィールドの一部は、このフィールドのシステム提供の値を使用する必要があることを示します。
        戻り値:
        このフレームの最大化された境界。nullも可能
        導入されたバージョン:
        1.4
        関連項目:
        setMaximizedBounds(Rectangle)
      • isUndecorated

        public boolean isUndecorated​()
        デフォルトではすべてのフレームが装飾を持ちます。 デフォルトでは、すべてのフレームが初期状態で装飾を持ちます。
        戻り値:
        フレームが装飾を持たない場合はtrue、そうでない場合はfalse
        導入されたバージョン:
        1.4
        関連項目:
        setUndecorated(boolean)
      • setBackground

        public void setBackground​(Color bgColor)
        このウィンドウの背景色を設定します。

        ウィンドウ管理システムがPERPIXEL_TRANSLUCENTの半透明性をサポートしている場合は、特定の背景色のアルファ成分がこのウィンドウの動作モードに影響を与える可能性があります。これは、このウィンドウが不透明(アルファが1.0fに等しい)、またはピクセルごとに半透明(アルファが1.0fより小さい)のどちらである必要があるかを示します。 特定の背景色がnullである場合、ウィンドウは完全に不透明であると見なされます。

        このウィンドウのピクセルごとの透明度モードを有効にするには、次のすべての条件が満たされる必要があります。

        要求された背景色のアルファ成分が1.0fより小さく、かつ上のいずれかの条件が満たされていない場合、このウィンドウの背景色は変更されず、特定の背景色のアルファ成分がこのウィンドウの動作モード影響を与えることはなく、UnsupportedOperationExceptionまたは IllegalComponentStateExceptionのどちらかがスローされます。

        ウィンドウがピクセルごとに半透明である場合、描画サブシステムは個々のピクセルのアルファ値に従います。 ピクセルが0に等しいアルファ色成分でペイントされた場合、そのピクセルは視覚的に透明になります。 ピクセルのアルファが1.0fに等しい場合、そのピクセルは完全に不透明です。 アルファ色成分の中間値によって、ピクセルは半透明になります。 このモードでは、ウィンドウのバックグラウンドは、特定の背景色のアルファ値でペイントされます。 このメソッドの引数のアルファ値が0に等しい場合、バックグラウンドはまったくペイントされません。

        特定のピクセルの半透明性の実際のレベルは、ウィンドウの不透明性(Window.setOpacity(float)を参照してください)や、このウィンドウの現在の形状(Window.setShape(Shape)を参照してください)によっても異なります。

        ピクセルを0のアルファ値でペイントすると、このピクセル上のマウス・イベント処理が無効になる可能性があることに注意してください。 これは、プラットフォーム依存の動作です。 マウス・イベントが特定のピクセルにディスパッチされないようにするには、そのピクセルをウィンドウの形状から除外する必要があります。

        ピクセルごとの半透明性モードを有効にすると、ネイティブ・プラット・フォームの要件のために、このウィンドウのグラフィックス構成が変更される可能性があります。

        オーバーライド:
        setBackground、クラス: Window
        パラメータ:
        bgColor - このウィンドウの背景色になる色。
        関連項目:
        Window.getBackground(), Window.isOpaque(), Window.setOpacity(float), Window.setShape(Shape), isUndecorated(), Dialog.isUndecorated(), GraphicsDevice.WindowTranslucency, GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency), GraphicsConfiguration.isTranslucencyCapable()
      • remove

        public void remove​(MenuComponent m)
        指定されたメニュー・バーをこのフレームから削除します。
        定義:
        remove、インタフェース: MenuContainer
        オーバーライド:
        remove、クラス: Component
        パラメータ:
        m - 削除対象のメニュー・コンポーネント。 mnullの場合、アクションは実行されない
        関連項目:
        Component.add(PopupMenu)
      • removeNotify

        public void removeNotify​()
        ネイティブ・スクリーン・リソースへの接続を削除することにより、このFrameを非表示にします。 Frameが非表示になると、そのフレームのすべての子も非表示になります。 このメソッドは、ツールキットによって内部で呼び出され、プログラムから直接呼び出されることはありません。
        オーバーライド:
        removeNotify、クラス: Window
        関連項目:
        Component.isDisplayable(), addNotify()
      • paramString

        protected String paramString​()
        このFrameの状態を表す文字列を返します。 このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なる場合があります。 返される文字列は空の場合がありますが、nullにはなりません。
        オーバーライド:
        paramString、クラス: Container
        戻り値:
        このフレームのパラメータ文字列
      • setCursor

        @Deprecated
        public void setCursor​(int cursorType)
        非推奨。 JDK version 1.1以降は、Component.setCursor(Cursor)に置き換えられています。
        このフレームのカーソルを指定された型に設定します。
        パラメータ:
        cursorType - カーソル型
      • getCursorType

        @Deprecated
        public int getCursorType​()
        非推奨。 JDK version 1.1以降は、Component.getCursor()に置き換えられています。
        戻り値:
        このフレームのカーソル型
      • getFrames

        public static Frame[] getFrames​()
        このアプリケーションによって作成されたすべてのFrameの配列を返します。 アプレットから呼び出された場合、この配列には、そのアプレットがアクセスできるFrameのみが含まれます。

        警告: このメソッドは、システムで生成されたフレーム(Swingで使用される共有の非表示フレームなど)を返すことがあります。 アプリケーションは、これらのフレームの存在を前提にしたり、コンポーネントの位置、LayoutManager、直列化などのこれらのフレームに関する情報を前提にしたりしてはいけません。

        : リリース1.6で導入された所有者なしDialogも含め、すべての所有者なしウィンドウのリストを取得するには、Window.getOwnerlessWindowsを使用してください。

        戻り値:
        このアプリケーションによって作成されたすべてのFrameの配列
        導入されたバージョン:
        1.2
        関連項目:
        Window.getWindows(), Window.getOwnerlessWindows()
      • getAccessibleContext

        public AccessibleContext getAccessibleContext​()
        このFrameに関連付けられたAccessibleContextを取得します。 フレームの場合、AccessibleContextはAccessibleAWTFrameの形式を取ります。 必要に応じて新規のAccessibleAWTFrameインスタンスが生成されます。
        定義:
        getAccessibleContext、インタフェース: Accessible
        オーバーライド:
        getAccessibleContext、クラス: Window
        戻り値:
        このFrameのAccessibleContextとして機能するAccessibleAWTFrame
        導入されたバージョン:
        1.3