モジュール 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
関連項目:
  • フィールド詳細

    • DEFAULT_CURSOR

      @Deprecated public static final int DEFAULT_CURSOR
      非推奨。
      Cursor.DEFAULT_CURSORに置き換えられています。
      関連項目:
    • CROSSHAIR_CURSOR

      @Deprecated public static final int CROSSHAIR_CURSOR
      非推奨。
      Cursor.CROSSHAIR_CURSORに置き換えられています。
      関連項目:
    • TEXT_CURSOR

      @Deprecated public static final int TEXT_CURSOR
      非推奨。
      Cursor.TEXT_CURSORに置き換えられています。
      関連項目:
    • WAIT_CURSOR

      @Deprecated public static final int WAIT_CURSOR
      非推奨。
      Cursor.WAIT_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に置き換えられています。
      関連項目:
    • HAND_CURSOR

      @Deprecated public static final int HAND_CURSOR
      非推奨。
      Cursor.HAND_CURSORに置き換えられています。
      関連項目:
    • MOVE_CURSOR

      @Deprecated public static final int MOVE_CURSOR
      非推奨。
      Cursor.MOVE_CURSORに置き換えられています。
      関連項目:
    • NORMAL

      public static final int NORMAL
      フレームが「通常の」状態です。 この記号定数は、すべての状態ビットがクリアされた、フレームの状態を示します。
      関連項目:
    • ICONIFIED

      public static final int ICONIFIED
      この状態ビットはフレームがアイコン化されていることを示します。
      関連項目:
    • MAXIMIZED_HORIZ

      public static final int MAXIMIZED_HORIZ
      この状態ビットはフレームが水平方向に最大化されていることを示します。
      導入されたバージョン:
      1.4
      関連項目:
    • MAXIMIZED_VERT

      public static final int MAXIMIZED_VERT
      この状態ビットはフレームが垂直方向に最大化されていることを示します。
      導入されたバージョン:
      1.4
      関連項目:
    • 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
      関連項目:
  • コンストラクタの詳細

  • メソッドの詳細

    • addNotify

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

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

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

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

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

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

      戻り値:
      このフレームのアイコン・イメージ。このフレームがアイコン・イメージを持たない場合はnull
      関連項目:
    • getMenuBar

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

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

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

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

      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
      関連項目:
    • getState

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

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

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

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

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

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

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

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

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

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

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

      public void setUndecorated(boolean undecorated)
      このフレームの装飾の有効化と無効化を切り替えます。

      フレームが表示されていない時にだけ呼び出すことができます。 このフレームを装飾するには、フレームがデフォルトの形状を持ち不透明であることが必要です。そうでない場合は、IllegalComponentStateExceptionがスローされます。 詳細は、Window.setShape(java.awt.Shape)Window.setOpacity(float)およびWindow.setBackground(java.awt.Color)を参照してください。

      パラメータ:
      undecorated - 有効化できるフレーム装飾がない場合はtrue、ある場合はfalse
      例外:
      IllegalComponentStateException - フレームが表示可能な場合
      IllegalComponentStateException - undecoratedfalseで、このフレームがデフォルトの形状でない場合
      IllegalComponentStateException - undecoratedfalseで、このフレームの不透明性が1.0fより小さい場合
      IllegalComponentStateException - undecoratedfalseで、このフレームの背景色のアルファ値が1.0fより小さい場合
      導入されたバージョン:
      1.4
      関連項目:
    • isUndecorated

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

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

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

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