Frame クラス
- [内容]
- タイトルと境界を持ったトップレベルの Window です.新しい Window を生成したい場合は,通常,このクラスを直接利用,または,このクラスのサブクラスとして作成されます.デフォルトレイアウトは,BorderLayout です.
- [コンストラクタ]
- public Frame()
- public Frame(String title)
- 指定されたタイトルを持つ Frame オブジェクトを生成(初期状態では,非表示)
- [主なメソッド]
- public Component add(Component comp) ( Container から継承)
- コンポーネントを付加する
- public Component add(Component comp, int index) ( Container から継承)
- コンポーネントを指定した位置に付加する.index が -1 の場合は最後に付加される.
- public void add(Component comp, Object constraints) ( Container から継承)
- レイアウトマネージャの制約に従って,コンポーネントを付加する
- public void add(Component comp, Object constraints, int index) ( Container から継承)
- レイアウトマネージャの制約に従って,指定された位置にコンポーネントを付加する
- public void add(PopupMenu popup) ( Component から継承)
- ポップアップメニューを付加する
- public void addComponentListener(ComponentListener l) ( Component から継承)
- ComponentListener を付加する
- public void addFocusListener(FocusListener l) ( Component から継承)
- FocusListener を付加する
- public void addKeyListener(KeyListener l) ( Component から継承)
- KeyListener を付加する
- public void addMouseListener(MouseListener l) ( Component から継承)
- MouseListener を付加する
- public void addMouseMotionListener(MouseMotionListener l) ( Component から継承)
- MouseMotionListener を付加する
- public void addWindowListener(WindowListener l) ( Window から継承)
- WindowListener を付加する
- public boolean contains(Point p) ( Component から継承)
- public boolean contains(int x, int y) ( Component から継承)
- コンポーネントが指定された点を含んでいるか否かを返す(参照: Point クラス)
- public Graphics getGraphics() ( Component から継承)
- このコンポーネントのグラフィックスコンテキストを作成する.コンポーネントが現在表示可能でない場合は,null を返す.(参照: TextArea クラス)
- public Insets getInsets() ( Container から継承)
- コンテナの境界のサイズを示す.
- public Container getParent() ( Component から継承)
- このコンポーネントの親を返す
- public Toolkit getToolkit() ( Window から継承)
- このフレームのツールキットを返す
- public void hide() ( Window から継承)
- 対象となる Window 及びその子供であるすべてのコンポーネントを,再び Show メソッドが呼ばれるまで表示しない.
- public void paint(Graphics g) ( Container から継承)
- 描画
- public void remove(MenuComponent m)
- 指定されたメニューバーを削除する
- public void remove(Component comp) ( Container から継承)
- 指定されたコンポーネントを取り除く
- public void remove(int index) ( Container から継承)
- index で指定されたコンポーネントを取り除く
- public void removeAll() ( Container から継承)
- すべてのコンポーネントを取り除く
- public void removeComponentListener(ComponentListener l) ( Component から継承)
- ComponentListener を取り除く
- public void removeFocusListener(FocusListener l) ( Component から継承)
- FocusListener を取り除く
- public void removeKeyListener(KeyListener l) ( Component から継承)
- KeyListener を取り除く
- public void removeMouseListener(MouseListener l) ( Component から継承)
- MouseListener を取り除く
- public void removeMouseMotionListener(MouseMotionListener l) ( Component から継承)
- MouseMotionListener を取り除く
- public void removeWindowListener(WindowListener l) ( Window から継承)
- WindowListener を取り除く
- public void repaint() ( Component から継承)
- public void repaint(int x, int y, int width, int height) ( Component から継承)
- public void repaint(long tm) ( Component から継承)
- public void repaint(long tm, int x, int y, int width, int height) ( Component から継承)
- 指定された矩形領域を,tm ミリ秒以内に再描画する
- public void setBackground(Color c) ( Component から継承)
- バックグラウンドカラーを設定する
- public void setBounds(int x, int y, int width, int height) ( Component から継承)
- public void setBounds(Rectangle r) ( Component から継承)
- コンポーネントを動かし,大きさを変える(参照: Rectangle クラス)
- public void setEnabled(boolean b) ( Component から継承)
- コンポーネントを enable,または,disable にする.disable にするとイベントを受け付けなくなる.
- public void setFont(Font f) ( Container から継承)
- コンテナのフォントを設定する
- public void setForeground(Color c) ( Component から継承)
- フォアグラウンドカラーを設定する
- public void setLayout(LayoutManager mgr) ( Container から継承)
- コンテナのレイアウトマネージャを設定する
- public void setLocation(int x, int y) ( Component から継承)
- public void setLocation(Point p) ( Component から継承)
- コンポーネントの位置を設定する(参照: Point クラス)
- public void setMenuBar(MenuBar mb)
- メニューバーを設定する
- public void setName(String name) ( Component から継承)
- コンポーネントの名前を設定する
- public void setResizable(boolean resizable)
- Frame の大きさを変更できるか否かを設定す
- public void setSize(int width, int height) ( Component から継承)
- public void setSize(Dimension d) ( Component から継承)
- コンポーネントの大きさを width ( d.width ),height ( d.height ) に設定する( Dimension については,プログラム例を参照)
- public void setTitle(String title)
- タイトルを設定する
- public void setVisible(boolean b) ( Component から継承)
- コンポーネントを表示,非表示にする
- public void show() ( Window から継承)
- Window を表示する
- public void toBack() ( Window から継承)
- 他の Window の一番後ろに置く
- public void toFront() ( Window から継承)
- すべての Window の前におく
- public void validate() ( Container から継承)
- このコンテナおよびすべてのサブコンポーネントを検証し,コンテナが格納しているコンポーネントが追加または変更されたあとで,コンテナがそのサブコンポーネントをもう一度配置できるようにする
- [使用例]
- プログラム例は,Frame クラスを継承した基本的な Window 生成例です.Swing の JtextField と AWT の Button が貼り付けてあります.Frame のデフォルトレイアウトは,BorderLayout になっています.ここをクリックするとアプレット版が表示されます(プログラム).なお,アプレット版では,アプレットから Window を生成しています.アプレットのサイズは 0 に設定していますので,アプレット自身は表示されません.

- プログラム例は,Window をスクリーン中央に表示した例です.ここをクリックするとアプレット版が表示されます(プログラム).なお,アプレット版では,アプレットから Window を生成しています.アプレットのサイズは 0 に設定していますので,アプレット自身は表示されません.

- プログラム例は,簡単な描画の例です.Window を GridLayout により,上下 2 つに分け,下の領域に描画しています.ここをクリックするとアプレット版が表示されます(プログラム).

- このプログラム例では,Graphics クラスを利用して図(円)を描いてアニメーションを作成しています.ここをクリックして表示してみてください.
- プログラム例は,ボールの落下をシミュレーションしたものです.ボールをクッリクすると停止し,もう一度クリックすると再び動き出します.この例においても,上の例と同様に,一定時間毎に異なる位置にボールを描くことによってアニメーションを作成しています.
- プログラム例は,上と同様に,ボールの落下をシミュレーションしたものです.ただし,この例では,ボールのイメージ( ball.gif )を読み込み,それを一定時間毎に異なる位置に表示することによってアニメーションを作成しています.外見的には,上で示したアニメーションと同じですが,多少画面のちらつきを感じると思います.ちらつきをなくすためには,次の例で述べるように,バッファリング処理が必要です.
- プログラム例は,文字が回転しながら移動する非常に単純なアニメーションです.上の例と同様,外部から画像を読み込んでいますが,異なる画像を順に表示しています.ここをクリックして,表示してみてください.
- 簡単なアニメーションの場合は問題になりませんが,一度に描く量が多くなったり,描画速度を速くすると画面のちらつきが発生するようになります.下の図では,背景の上に小さな円をランダムに動かしています.通常の方法(プログラム例1)で描くとかなり画面がちらつきますが,バッファリングを利用する(プログラム例2)と,ちらつきはほとんど無くなります.なお,プログラム例2では,MediaTracker を利用してイメージを読み込んでいます.アプレット版に関しては,以下に示す箇所をクリックしてください.
- バッファ無し(プログラム)
- バッファ有り(プログラム)

- もう少し複雑な例を示します.プログラム例は,Java によってホームページにおけるトップページを作成した例です.最初に表示された状態では,すべての図形が停止していますが,徐々に各図形が動き出します.まず,上部にある文字の部分をクリックすると,
- 加速: 動きが少しずつ速くなります
- 加速: 動きが少しずつ遅くなります
- 総合情報学部: 総合情報学部への入り口に移動します
- といった動作を行います.
- 図形部分をクリックすると,動きが止まり,対応する説明が表示されます.説明を閉じると再び動き出し,説明を閉じずに文字や図形以外の部分をクリックすると説明に対応する図形が削除された後,他の図形は再び動き出します.また,文字や図形以外の部分をクリックすると,動きが停止します.停止した状態で,文字や図形以外の部分をクリックすると,再び動き出します.最初に設定されている速度では,各図形をクリックすることは難しいかと思いますので,減速又は停止した後にクリックしてみてください.
- アニメーションを作成する方法としては,プログラムによって図形を描画する方法,外部から読み込んだ図形を順に表示する方法の他に,イメージのピクセル値を直接編集する方法が考えられます(もちろん,これらの方法を同時に使用する方法も考えられます).花火は,ピクセル値を直接編集する方法によって作成しています(プログラム例).
- プログラム例は,レイアウトマネージャを使用せずにボタンを貼り付けた例です.ここをクリックするとアプレット版が表示されます(プログラム).

- プログラム例は,コンポーネントを動的に再配置する例です.また,ScrollPane の使用方法の例にもなっています.具体的な内容は,アプレットを表示してみてください.入力したデータによって,画面の下の部分が変化するはずです.
- [参照]
- JFrame, Applet, Dialog, Panel