モジュール 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
      • accessibleContext

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

      • 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,
                      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
      • 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)
      • 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)
      • 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
      • setRootPane

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