モジュール java.desktop
パッケージ javax.swing

クラスJFrame

すべての実装されたインタフェース:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants

@JavaBean(defaultProperty="JMenuBar",
          description="A toplevel window which can be minimized to an icon.")
public class JFrame
extends Frame
implements WindowConstants, Accessible, RootPaneContainer
JFC/Swingコンポーネント・アーキテクチャのサポートを追加するjava.awt.Frameの拡張バージョン。 JFrameの使用に関するタスク指向のドキュメントは、「The Java Tutorial」の「How to Make Frames」を参照してください。

JFrameクラスはFrameと多少互換性のないところがあります。 ほかのすべてのJFC/Swingトップレベル・コンテナと同様、JFrameJRootPaneを唯一の子として保持します。 原則として、ルート・ペインが提供するコンテンツ・ペインにはJFrameが表示するメニュー以外のすべてのコンポーネントが含まれる必要があります。 この点はAWTのFrameの場合とは異なります。 便宜上、このクラスのaddremoveおよびsetLayoutメソッドは、ContentPaneの対応するメソッドに呼出しを委譲するようにオーバーライドされます。 たとえば、次のようにしてフレームに子コンポーネントを追加できます。

       frame.add(child);
 
子はcontentPaneに追加されます。 コンテンツ・ペインは常にnull以外です。 nullに設定しようとするとJFrameは例外をスローします。 デフォルトのコンテンツ・ペインには、BorderLayoutマネージャが設定されます。 JFrameLayoutManagerの追加、削除、および設定の詳細については、RootPaneContainerを参照してください。

Frameとは異なり、JFrameにはユーザーがウィンドウを閉じようとしたときにどのように対応するかという概念があります。 デフォルトの動作は、ユーザーがウィンドウを閉じたら単にJFrameを隠すというものです。 デフォルト動作を変更するには、setDefaultCloseOperation(int)メソッドを呼び出します。 JFrameFrameインスタンスと同じように動作させるには、setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)を使用します。

コンテンツ・ペインの詳細、およびルート・ペインが提供するその他の機能の詳細については、「The Java Tutorial」の「Using Top-Level Containers」を参照してください。

マルチスクリーン環境の場合には、別のスクリーン・デバイス上にJFrameを生成できます。 詳細は、Frameを参照してください。

警告: Swingはスレッドに対して安全ではありません。 詳細は、「Swing's Threading Policy」を参照してください。

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。

導入されたバージョン:
1.2
関連項目:
JRootPane, setDefaultCloseOperation(int), WindowListener.windowClosing(java.awt.event.WindowEvent), RootPaneContainer
  • フィールド詳細

    • rootPane

      protected JRootPane rootPane
      glassPaneだけでなく、このフレームのcontentPaneおよびオプションのmenuBarを管理するJRootPaneのインスタンスです。
      関連項目:
      JRootPane, RootPaneContainer
    • rootPaneCheckingEnabled

      protected boolean rootPaneCheckingEnabled
      trueの場合は、addおよびsetLayoutの呼出しがcontentPaneに転送されます。 最初はfalseですが、JFrameが構築されると、trueに設定されます。
      関連項目:
      isRootPaneCheckingEnabled(), setRootPaneCheckingEnabled(boolean), RootPaneContainer
    • accessibleContext

      protected AccessibleContext accessibleContext
      Accessibleコンテキスト・プロパティです。
  • コンストラクタの詳細

    • JFrame

      public JFrame() throws HeadlessException
      初期状態が不可視である、新しいフレームを構築します。

      このコンストラクタはコンポーネントのローカル・プロパティをJComponent.getDefaultLocaleによって返された値に設定します。

      例外:
      HeadlessException - GraphicsEnvironment.isHeadless()がtrueを返した場合。
      関連項目:
      GraphicsEnvironment.isHeadless(), Component.setSize(int, int), Component.setVisible(boolean), JComponent.getDefaultLocale()
    • JFrame

      public JFrame​(GraphicsConfiguration gc)
      画面デバイスの指定されたGraphicsConfigurationと空のタイトルで、Frameを作成します。

      このコンストラクタはコンポーネントのローカル・プロパティをJComponent.getDefaultLocaleによって返された値に設定します。

      パラメータ:
      gc - 新しいFrameの構築に使用するGraphicsConfigurationgcnullの場合、システムのデフォルトのGraphicsConfigurationが使用される
      例外:
      IllegalArgumentException - gcが画面デバイスのものでない場合。 この例外はGraphicsEnvironment.isHeadless()がtrueを返す場合に必ずスローされる。
      導入されたバージョン:
      1.3
      関連項目:
      GraphicsEnvironment.isHeadless(), JComponent.getDefaultLocale()
    • JFrame

      public JFrame​(String title) throws HeadlessException
      指定されたタイトルを使用して、初期状態で可視ではない新しいFrameを作成します。

      このコンストラクタはコンポーネントのローカル・プロパティをJComponent.getDefaultLocaleによって返された値に設定します。

      パラメータ:
      title - フレームのタイトル
      例外:
      HeadlessException - GraphicsEnvironment.isHeadless()がtrueを返した場合。
      関連項目:
      GraphicsEnvironment.isHeadless(), Component.setSize(int, int), Component.setVisible(boolean), JComponent.getDefaultLocale()
    • JFrame

      public JFrame​(String title, GraphicsConfiguration gc)
      指定されたタイトルと、画面デバイスの指定されたGraphicsConfigurationで、JFrameを作成します。

      このコンストラクタはコンポーネントのローカル・プロパティをJComponent.getDefaultLocaleによって返された値に設定します。

      パラメータ:
      title - フレームのボーダーに表示されるタイトル。 null値は、空の文字列""として処理されます。
      gc - 新しいJFrameの構築に使用するGraphicsConfigurationgcnullの場合、システムのデフォルトのGraphicsConfigurationが使用される
      例外:
      IllegalArgumentException - gcが画面デバイスのものでない場合。 この例外はGraphicsEnvironment.isHeadless()がtrueを返す場合に必ずスローされる。
      導入されたバージョン:
      1.3
      関連項目:
      GraphicsEnvironment.isHeadless(), JComponent.getDefaultLocale()
  • メソッドの詳細

    • frameInit

      protected void frameInit()
      JFrameを適切に初期化するためにコンストラクタによって呼び出されます。
    • createRootPane

      protected JRootPane createRootPane()
      デフォルトのrootPaneを作成するために、コンストラクタ・メソッドから呼び出されます。
      戻り値:
      新しいJRootPane
    • processWindowEvent

      protected void processWindowEvent​(WindowEvent e)
      このコンポーネントで発生するウィンドウ・イベントを処理します。 defaultCloseOperationプロパティの設定値に従って、ウィンドウを非表示にするか、または破棄します。
      オーバーライド:
      processWindowEvent、クラス: Window
      パラメータ:
      e - ウィンドウ・イベント
      関連項目:
      setDefaultCloseOperation(int), Window.processWindowEvent(java.awt.event.WindowEvent)
    • setDefaultCloseOperation

      @BeanProperty(preferred=true, enumerationValues={"WindowConstants.DO_NOTHING_ON_CLOSE","WindowConstants.HIDE_ON_CLOSE","WindowConstants.DISPOSE_ON_CLOSE","WindowConstants.EXIT_ON_CLOSE"}, description="The frame\'s default close operation.")public void setDefaultCloseOperation​(int operation)
      ユーザーがこのフレームの「クローズ」を開始したときに、デフォルトで実行される処理を設定します。 次のうち1つを指定する必要があります。

      • DO_NOTHING_ON_CLOSE (WindowConstantsに定義): 何も行わない。プログラムは登録されているWindowListenerオブジェクトのwindowClosingメソッドで処理を行う必要がある。
      • HIDE_ON_CLOSE (WindowConstantsに定義): 登録されている任意のWindowListenerオブジェクトを呼び出したあとで、自動的にフレームを隠す。
      • DISPOSE_ON_CLOSE (WindowConstantsに定義): 登録されている任意のWindowListenerオブジェクトを呼び出したあとで、自動的にフレームを隠して破棄する。
      • EXIT_ON_CLOSE (WindowConstantsで定義): System exitメソッドを使用してアプリケーションを終了します。 アプリケーションでのみ使用する。

      デフォルトではHIDE_ON_CLOSEが設定されます。 このプロパティの値を変更すると、プロパティ名defaultCloseOperationでプロパティ変更イベントがトリガーされます。

      ノート: Java仮想マシン(VM)内で最後の表示可能なウィンドウが破棄されると、VMが終了することがあります。 詳細は、「AWTスレッドの問題」を参照してください。

      パラメータ:
      operation - ユーザーがフレームを閉じるときに実行されるべき処理
      例外:
      IllegalArgumentException - defaultCloseOperationの値が前述の有効な値と異なる場合
      SecurityException - EXIT_ON_CLOSEが指定されていて、SecurityManagerが呼出し側にSystem.exitの呼出しを許可しない場合
      関連項目:
      Window.addWindowListener(java.awt.event.WindowListener), getDefaultCloseOperation(), WindowConstants, Runtime.exit(int)
    • getDefaultCloseOperation

      public int getDefaultCloseOperation()
      ユーザーがこのフレームで「クローズ」を開始したときに実行される処理を返します。
      戻り値:
      ウィンドウ・クローズ・オペレーションを示す整数
      関連項目:
      setDefaultCloseOperation(int)
    • setTransferHandler

      @BeanProperty(hidden=true, description="Mechanism for transfer of data into the component")public void setTransferHandler​(TransferHandler newHandler)
      このコンポーネントへのデータ転送をサポートするメカニズムである、transferHandlerプロパティを設定します。 コンポーネントがデータ転送操作をサポートしない場合、nullを使用します。

      システム・プロパティsuppressSwingDropSupportfalse (デフォルト)であり、このコンポーネント上の現在のドロップ・ターゲットがnullであるか、ユーザー設定のドロップ・ターゲットでない場合、このメソッドはドロップ・ターゲットを次のように変更します。newHandlernullの場合は、ドロップ・ターゲットをクリアします。 nullでない場合は、新しいDropTargetをインストールします。

      ノート: JFrameと組み合わせて使用した場合、TransferHandlerはデータのインポート機能しか提供しません。これは、データのエクスポート関連のメソッドが現在JComponent型になっているためです。

      詳細は、『The Java Tutorial』の「How to Use Drag and Drop and Data Transfer」を参照してください。

      パラメータ:
      newHandler - 新しいTransferHandler
      導入されたバージョン:
      1.6
      関連項目:
      TransferHandler, getTransferHandler(), Component.setDropTarget(java.awt.dnd.DropTarget)
    • getTransferHandler

      public TransferHandler getTransferHandler()
      transferHandlerプロパティを取得します。
      戻り値:
      transferHandlerプロパティの値
      導入されたバージョン:
      1.6
      関連項目:
      TransferHandler, setTransferHandler(javax.swing.TransferHandler)
    • update

      public void update​(Graphics g)
      paint(g)を呼び出すだけです。 このメソッドは、バックグラウンドをクリアする不必要な呼出しが行われないようにするためにオーバーライドされました。
      オーバーライド:
      update、クラス: Container
      パラメータ:
      g - ペイント対象のGraphicsコンテキスト
      関連項目:
      Component.update(Graphics)
    • setJMenuBar

      @BeanProperty(bound=false, hidden=true, description="The menubar for accessing pulldown menus from this frame.")public void setJMenuBar​(JMenuBar menubar)
      このフレームのメニュー・バーを設定します。
      パラメータ:
      menubar - フレーム内に配置されているメニュー・バー
      関連項目:
      getJMenuBar()
    • getJMenuBar

      public JMenuBar getJMenuBar()
      このフレームに設定されているメニュー・バーを返します。
      戻り値:
      このフレームのメニュー・バー
      関連項目:
      setJMenuBar(javax.swing.JMenuBar)
    • isRootPaneCheckingEnabled

      protected boolean isRootPaneCheckingEnabled()
      addおよびsetLayoutの呼出しがcontentPaneに転送されるかどうかを返します。
      戻り値:
      addおよびsetLayoutが転送される場合はtrue、それ以外の場合はfalse
      関連項目:
      addImpl(java.awt.Component, java.lang.Object, int), setLayout(java.awt.LayoutManager), setRootPaneCheckingEnabled(boolean), RootPaneContainer
    • setRootPaneCheckingEnabled

      @BeanProperty(hidden=true, description="Whether the add and setLayout methods are forwarded")protected void setRootPaneCheckingEnabled​(boolean enabled)
      addおよびsetLayoutの呼出しがcontentPaneに転送されるかどうかを設定します。
      パラメータ:
      enabled - addおよびsetLayoutが転送される場合はtrue、JFrameで直接実行する必要がある場合はfalse。
      関連項目:
      addImpl(java.awt.Component, java.lang.Object, int), setLayout(java.awt.LayoutManager), isRootPaneCheckingEnabled(), RootPaneContainer
    • addImpl

      protected void addImpl​(Component comp, Object constraints, int index)
      指定された子Componentを追加します。 このメソッドをオーバーライドすると、呼出しが条件付きでcontentPaneに転送されます。 デフォルトでは、子はフレームではなくcontentPaneに追加されます。詳細は、RootPaneContainerを参照してください。
      オーバーライド:
      addImpl、クラス: Container
      パラメータ:
      comp - 拡張されるコンポーネント
      constraints - 遵守されるべき制約
      index - インデックス
      例外:
      IllegalArgumentException - indexが無効である場合
      IllegalArgumentException - コンテナの親をそのコンテナ自体に追加しようとしている場合
      IllegalArgumentException - ウィンドウをコンテナに追加しようとしている場合
      関連項目:
      setRootPaneCheckingEnabled(boolean), RootPaneContainer
    • remove

      public void remove​(Component comp)
      指定されたコンポーネントをコンテナから削除します。 comprootPaneでない場合は、呼出しがcontentPaneに転送されます。 compJFrameまたはcontentPaneの子でない場合は、何も行われません。
      オーバーライド:
      remove、クラス: Container
      パラメータ:
      comp - 削除されるコンポーネント
      例外:
      NullPointerException - compがnullである場合
      関連項目:
      Container.add(java.awt.Component), RootPaneContainer
    • setLayout

      public void setLayout​(LayoutManager manager)
      LayoutManagerを設定します。 オーバーライドすると、呼出しが条件付きでcontentPaneに転送されます。 詳細は、RootPaneContainerを参照してください。
      オーバーライド:
      setLayout、クラス: Container
      パラメータ:
      manager - LayoutManager
      関連項目:
      setRootPaneCheckingEnabled(boolean), RootPaneContainer
    • getRootPane

      @BeanProperty(bound=false, hidden=true, description="the RootPane object for this frame.") public JRootPane getRootPane()
      このフレームのrootPaneオブジェクトを返します。
      定義:
      getRootPane、インタフェース: RootPaneContainer
      戻り値:
      rootPaneプロパティ
      関連項目:
      setRootPane(javax.swing.JRootPane), RootPaneContainer.getRootPane()
    • setRootPane

      protected void setRootPane​(JRootPane root)
      rootPaneプロパティを設定します。 このメソッドはコンストラクタによって呼び出されます。
      パラメータ:
      root - このフレームのrootPaneオブジェクト
      関連項目:
      getRootPane()
    • getContentPane

      public Container getContentPane()
      このフレームのcontentPaneオブジェクトを返します。
      定義:
      getContentPane、インタフェース: RootPaneContainer
      戻り値:
      contentPaneプロパティ
      関連項目:
      setContentPane(java.awt.Container), RootPaneContainer.getContentPane()
    • setContentPane

      @BeanProperty(bound=false, hidden=true, description="The client area of the frame where child components are normally inserted.")public void setContentPane​(Container contentPane)
      contentPaneプロパティを設定します。 このメソッドはコンストラクタによって呼び出されます。

      Swingのペイント・アーキテクチャでは、包含関係の階層に不透明なJComponentが含まれている必要があります。 通常、これはコンテンツ・ペインによって提供されます。 コンテンツ・ペインを置き換える場合は、不透明なJComponentと置き換えることをお勧めします。

      定義:
      setContentPane、インタフェース: RootPaneContainer
      パラメータ:
      contentPane - このフレームのcontentPaneオブジェクト
      例外:
      IllegalComponentStateException - (実行時例外)コンテンツ・ペイン・パラメータが次の場合: null
      関連項目:
      getContentPane(), RootPaneContainer.setContentPane(java.awt.Container), JRootPane
    • getLayeredPane

      public JLayeredPane getLayeredPane()
      このフレームのlayeredPaneオブジェクトを返します。
      定義:
      getLayeredPane、インタフェース: RootPaneContainer
      戻り値:
      layeredPaneプロパティ
      関連項目:
      setLayeredPane(javax.swing.JLayeredPane), RootPaneContainer.getLayeredPane()
    • setLayeredPane

      @BeanProperty(bound=false, hidden=true, description="The pane that holds the various frame layers.")public void setLayeredPane​(JLayeredPane layeredPane)
      layeredPaneプロパティを設定します。 このメソッドはコンストラクタによって呼び出されます。
      定義:
      setLayeredPane、インタフェース: RootPaneContainer
      パラメータ:
      layeredPane - このフレームのlayeredPaneオブジェクト
      例外:
      IllegalComponentStateException - 階層化ペイン・パラメータがnullの場合(実行時例外)
      関連項目:
      getLayeredPane(), RootPaneContainer.setLayeredPane(javax.swing.JLayeredPane)
    • getGlassPane

      public Component getGlassPane()
      このフレームのglassPaneオブジェクトを返します。
      定義:
      getGlassPane、インタフェース: RootPaneContainer
      戻り値:
      glassPaneプロパティ
      関連項目:
      setGlassPane(java.awt.Component), RootPaneContainer.getGlassPane()
    • setGlassPane

      @BeanProperty(bound=false, hidden=true, description="A transparent pane used for menu rendering.")public void setGlassPane​(Component glassPane)
      glassPaneプロパティを設定します。 このメソッドはコンストラクタによって呼び出されます。
      定義:
      setGlassPane、インタフェース: RootPaneContainer
      パラメータ:
      glassPane - このフレームのglassPaneオブジェクト
      関連項目:
      getGlassPane(), RootPaneContainer.setGlassPane(java.awt.Component)
    • getGraphics

      @BeanProperty(bound=false) public Graphics getGraphics()
      このコンポーネントのグラフィックス・コンテキストを作成します。 このメソッドは、コンポーネントが現在表示可能でない場合、nullを返します。
      オーバーライド:
      getGraphics、クラス: Component
      戻り値:
      このコンポーネントのグラフィックス・コンテキスト。ない場合はnull
      導入されたバージョン:
      1.6
      関連項目:
      Component.paint(java.awt.Graphics)
    • repaint

      public void repaint​(long time, int x, int y, int width, int height)
      このコンポーネントの指定された矩形をtimeミリ秒以内に再ペイントします。 再ペイントの方法の詳細は、RepaintManagerを参照してください。
      オーバーライド:
      repaint、クラス: Component
      パラメータ:
      time - 更新までの最大時間(ミリ秒単位)
      x - x座標
      y - y座標
      width - 幅
      height - 高さ
      導入されたバージョン:
      1.6
      関連項目:
      RepaintManager
    • setDefaultLookAndFeelDecorated

      public static void setDefaultLookAndFeelDecorated​(boolean defaultLookAndFeelDecorated)
      新しく生成されるJFrameが、現在のルック・アンド・フィールで実行できるボーダー、ウィンドウ・クローズ用ウィジェット、タイトルなどのウィンドウ装飾を保持するかどうかのヒントが用意されています。 defaultLookAndFeelDecoratedがtrueの場合、現在のLookAndFeelがウィンドウ装飾をサポートし、現在のウィンドウ・マネージャが装飾のないウィンドウをサポートするため、新しく生成されるJFrameは、現在のLookAndFeelで実行できるウィンドウ装飾を保持します。 それ以外の場合は、新しく生成されるJFrameは現在のウィンドウ・マネージャで実行できるウィンドウ装飾を保持します。

      単一のJFrameに対しても次を実行することにより、同じ効果を得られます。

          JFrame frame = new JFrame();
          frame.setUndecorated(true);
          frame.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
       

      パラメータ:
      defaultLookAndFeelDecorated - 現在のルック・アンド・フィールがウィンドウ装飾を提供するかどうかのヒント
      導入されたバージョン:
      1.4
      関連項目:
      LookAndFeel.getSupportsWindowDecorations()
    • isDefaultLookAndFeelDecorated

      public static boolean isDefaultLookAndFeelDecorated()
      新しく生成されるJFrameの現在のルック・アンド・フィールで実行できるウィンドウ装飾を保持する場合はtrueを返します。 これは単なるヒントであり、ルック・アンド・フィールがこの機能をサポートしない場合もあります。
      戻り値:
      ルック・アンド・フィールがウィンドウ修飾を提供する場合はtrue。
      導入されたバージョン:
      1.4
    • paramString

      protected String paramString()
      このJFrameの文字列表現を返します。 このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なる可能性があります。 返される文字列は空でもかまいませんが、nullにはできません。
      オーバーライド:
      paramString、クラス: Frame
      戻り値:
      このJFrameの文字列表現
    • getAccessibleContext

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