トップ->Java Applet入門

Java入門内検索

目次
Javaトップ
0. はじめに

1. Javaの基礎
   1. コンパイル方法・実行方法
   2. 予約語
   3. 構成
   4. データの型と宣言
   5. 定数と変数
   6. 簡単な演算
   7. ディスプレイへの表示
   8. 文字列

2. 制御文
   1. 順次構造
   2. 単一分岐
   3. 多重分岐
   4. ケース構造
   5. 反復構造(while)
   6. 反復構造(do)
   7. 反復構造(for)
   8. 補助制御文
   9. 練習問題
   10.練習問題
   11.多重ループの抜け方

3. 配列
   1. 配列とは
   2. 配列の宣言と初期化
   3. 配列の使用法
   4. 練習問題
   5. 2次配列と多次元配列
   6. 練習問題

4. クラスの基礎
   1. クラスとは
   2. クラスの作成
   3. コンストラクタ
   4. 例題
   5. 演算子==とequalsメソッド

5. 演算子
   1. 演算子の種類
   2. インクリメント演算子とデクリメント演算子
   3. 複合代入演算子
   4. ビット演算子
   5. シフト演算子
   6. キャスト演算子
   7. 順次演算子
   8. 条件演算子(三項演算子)
   9. instanceof演算子
   10.演算子の優先順位
   11.式と値
   12.条件式と値
   13.練習問題

6. オブジェクト指向とは
   1. オブジェクト指向とクラス
   2. 継承
   3. カプセル化
   4. ポリモーフィズム

7. クラス
   1. thisキーワード
   2. public, protected, private
   3. 静的変数・静的メソッド・静的ブロック
   4. ローカル変数
   5. メソッドの引数
   6. null
   7. 練習問題
   8. インナークラス(内部クラス)
   9. 無名インナークラス(無名内部クラス)
   10. クラスの包含
   11. 練習問題

8. 継承
   1. 継承とは
   2. スーパークラスのコンストラクタ
   3. 継承とキャスト
   4. スコープ
   5. クラスの作成
   6. abstract
   7. 例題)お絵かきソフト
   8. 継承と包含

9. インターフェース
   1. インターフェースとは
   2. インターフェースの宣言
   3. インターフェースの参照
   4. インターフェースの修飾子
   5. インターフェースの継承
   6. インターフェースとinstanceof演算子

10. パッケージ
   1. パッケージとは
   2. パッケージの宣言
   3. クラスパス
   4. import

11. 例外
   1. 例外とは
   2. 例外が起きたら
   3. 例外の種類
   4. catchブロックの検索
   5. throw
   6. throws
   7. エラーと例外
   8. 独自の例外

12. マルチスレッド
   1. スレッドとは
   2. スレッドのライフサイクル
   3. スレッドの作成(Threadクラス)
   4. Threadクラスのメソッド
   5. スレッドの作成(Runnableインターフェース)
   6. 同期
   7. デッドロック
   8. スレッド間の通信

13. ガーベージコレクター
   1. ガーベージコレクターとは
   2. ガーベージコレクターの実行
   3. finalize

14. 有用な(?)クラス群
   1. Math
   2. Random
   3. System
   4. Vector
   5. Stack
   6. Hashtable
   7. Enumeration
   8. String
   9. StringTokenizer
   10. Object
   11. Number
   12. Byte
   13. Short
   14. Integer
   15. Long
   16. Float
   17. Double
   18. BigInteger
   19. BigDecimal
   20. Character
   21. Date
   22. Calendar

15. 入出力
   1. ファイルとディレクトリ
   2. ストリームの種類
   3. 文字ストリーム
   4. Reader
   5. CharArrayReader
   6. StringReader
   7. InputStreamReader
   8. FileReader
   9. BufferedReader
   10. Writer
   11. CharArrayWriter
   12. StringWriter
   13. OutputStreamWriter
   14. FileWriter
   15. PrintWriter
   16. BufferedWriter
   17. バイトストリーム
   18. InputStream
   19. ByteArrayInputStream
   20. FileInputStream
   21. FilterInputStream
   22. BufferedInputStream
   23. DataInputStream
   24. OutputStream
   25. ByteArrayOutputStream
   26. FileOutputStream
   27. FilterOutputStream
   28. BufferedOutputStream
   29. PrintStream
   30. DataOutputStream
   31. ランダムアクセスファイル
   32. スレッド間通信
       PipedInputStream
       PipedOutputStream
   33. クラスの保存
       ObjectInputStream
       ObjectOutputStream
       Serializable
   34. StreamTokenizer
   35. 標準入出力
       キーボードからの入力(標準入力)
       標準出力
       標準エラー出力
   36. 練習問題

16. ネットワーク
   1. インターネットアドレス
   2. TCP/IP通信
   3. UDP通信
   4. URL
   5. 練習問題
   6. マルチキャスト
   7. RMI

17. 中間試験
   1. 問題:Webサーバーを作りなさい
   2. HTTPプロトコル
   3. クラス設計
   4. 解答例

18. AWT
   1. AWTとは
   2. Component
   3. Container
   4. Frame
   5. Button
   6. レイアウト
   7. BorderLayout
   8. FlowLayout
   9. GridLayout
   10. CardLayout
   11. nullレイアウト
   12. イベントとイベントリスナー
   13. ActionListener
   14. Panel
   15. Label
   16. CheckBoxとItemListener
   17. CheckBoxGroup
   18. Choice
   19. List
   20. TextFieldとTextListener
   21. TextArea
   22. ScrollbarとAdjastmentListener
   23. Canvas
   24. 練習問題(計算機)
   25. Point
   26. Dimension
   27. Color
   28. Font
   29. Graphics
   30. 練習問題
   31. 練習問題
   32. ダブルバッファ
   33. イベント その2
       ActionEvent
       ItemEvent
       AdjustmentEvent
   34. KeyListenerとKeyEvent
       InputEvent
   35. MouseListenerとMouseEvent
   36. MouseMotionListener
   37. FocusListenerとFosusEvent
   38. WindowListenerとWindowEvent
   39. ComponentListenerとComponentEvent
   40. ContainerListenerとContainerEvent
   41. アダプタクラスとインナークラス
   42. 無名インナークラス
   43. 練習問題 お絵かき
   44. WindowとDialog、FileDialog
   45. メニュー
   46. ポップアップメニュー
   47. ショートカット
   48. カーソル

19. Java Applet
   1. Java Appletとは
   2. 最初のJava Applet
   3. Appletクラス
   4. Appletクラスのライフサイクル
   5. AppletContext
   6. イメージ
   7. パラメーター
   8. 練習問題 スライドショー
   9. Jarファイル
   10. 練習問題 時計

20. その他のチップス
   1. Javaから別のプログラムを実行させる
   2. StringBuffer
   3. 環境変数の取得
   4. 基数表記
   5. インスタンスのコピー
   6. 値渡しと参照渡し
   7. クラスオブジェクトの比較

21. 修了試験 ↓これより下は工事中です。
   1. 考え中
   2. 考え中
   3.
   4.

22. そしてその後は・・・
   1. ヒューマンアカデミー Javaプログラマー本科
   2. Appli-Style.com iアプリ作成に挑戦
   3. SJC-A 受験チケット申込


・ このページの先頭に戻る
・ トップページに戻る



・ このページの先頭に戻る
・ トップページに戻る

トップ-> Java入門:18章 AWT-> 44.WindowとDialog、FileDialog

←前ページへ :  トップへ :  次ページへ→

44. WindowとDialog、FileDialog

  DialogはContainerクラスのサブクラスのWindowクラスのサブクラスに当たります。FrameクラスもWindowクラスのサブクラスですので兄弟という感じです。Frameはソフトの大元のウインドウであり、「フレームが閉じられる≒ソフトが終了する」という感じですが、ダイアログはいずれ閉じられることが前提となっているのが大きく違うところです。また後述するメニューが使用できるかという違いもあります。

  一般にダイアログが表示されるとその元となるフレーム(ウインドウ)の操作ができなくなる場合が多いです。これをモーダルダイアログと言います。一方、ダイアログが表示されても元のフレーム(ウインドウ)の操作をすることができるダイアログをモードレスダイアログと言います。

  ダイアログを作るためには、
  1. Dialogのサブクラスを作る。コンストラクタではDialogクラスのコンストラクタを呼ぶ。
  2. コンストラクタでボタンなどの各コンポーネントを作成する。
  3. 同じくコンストラクタ内でレイアウトを作成し、上で作ったコンポーネントを追加する。
  4. 各コンポーネントにリスナーを登録する。
  5. packメソッドもしくはsetSizeメソッドを読んでサイズを決める。
  6. 終了する場合はdisposeメソッドを呼ぶ

  ダイアログを呼び出す方は
  1. 上で作ったDialogのサブクラスのインスタンスを作る。
  2. setVisibleメソッドを使って表示させる。

  Dialogを表示する場所はプラットフォームなどによって変わる場合がありますが、基本的に画面の左上か親フレームと同じ位置になり、見にくくなります。この場合は、ComponentクラスのgetLocationOnScreenメソッドとsetLocationメソッドを用いて画面中央あたりに表示させるようにしたり、setLocationメソッドを用いて親フレームから少しずらした方がよいでしょう。
  また、モードレスダイアログなど、複数のダイアログが表示されるような場合も、重ならないように配慮するべきでしょう。

  まずDialogやFrameの基底クラスであるWindowクラスのメソッドを紹介します。

Window
メソッド
void pack()
    Windowに使いされたコンポーネントの推奨サイズと設定されたレイアウトから計算してこのWindowのサイズを変更します。
void show()
    このWindowを表示させ、全面に表示させます。
void hide()
    このWindowを非表示にさせます。
void dispose()
    このWindowおよび追加したコンポーネントが消費しているリソース(メモリ等)を解放します。
    packメソッド、showメソッドを使用することで新たにリソースを確保します。
void toFront()
    このWindowを最前面に表示させます。
void toBack()
    このWindowを後ろに回します。
Window getOwner()
    このWindowを所有するWindowを返します。
void addWindowListener(WindowListener l)
    WindowListener lを追加します。
void removeWindowListener(WindowListener l)
    WindowListener lを削除します。
Component getFocusOwner()
    このWindowがフォーカスされている場合、このWindowに追加されているComponentの内、フォーカスを持っているComponentを返します。
    このWindowがフォーカスを得ていない場合はnullを返します。
boolean isShowing()
    このWindowが表示されているならばtrueを返します。


  それではDialogの紹介をします。
Dialog
コンストラクタ
Dialog(Frame owner)
      このダイアログの所有者をownerとしてモードレスダイアログを作成します。
      ownerが不正な場合はIllegalArgumentExceptionが投げられます。
Dialog(Frame owner, boolean modal)
      このダイアログの所有者をownerとしてモードレスダイアログを作成します。
      modalがtrueの場合はモーダルダイアログとなります。
      ownerが不正な場合はIllegalArgumentExceptionが投げられます。
Dialog(Frame owner, String title)
      このダイアログの所有者をownerとしてモードレスダイアログを作成します。
      titleはダイアログのタイトルとなります。
      ownerが不正な場合はIllegalArgumentExceptionが投げられます。
      titleがnullでも例外は投げられません。
Dialog(Frame owner, String title, boolean modal)
      このダイアログの所有者をownerとしてモードレスダイアログを作成します。
      modalがtrueの場合はモーダルダイアログとなります。
      titleはダイアログのタイトルとなります。
      ownerが不正な場合はIllegalArgumentExceptionが投げられます。
      titleがnullでも例外は投げられません。

メソッド
boolean isModal()
    モーダルダイアログならtrueが返されます。
void setModal(boolean modal)
    モーダルダイアログがモードレスダイアログかを設定します。trueならばモーダルダイアログです。
String getTitle()
    ダイアログのタイトルを返します。
void setTitle(String title)
    ダイアログのタイトルをセットします。
boolean isResizable()
    ユーザーがダイアログのサイズを変更できるならばtrueが返されます。
boolean setResizable(boolean resize)
    ユーザーがダイアログのサイズを変更できるかをセットします。
    resizeがtrueならばリサイズ可能にします。


  それでは簡単な例を示します。


import java.awt.*;
import java.awt.event.*;

public class Test implements ActionListener{
    Button btn;
    Frame  frm;
    Dialog d;

    public Test(){
        /* フレームを作成します。*/
        frm = new Frame();
        frm.setSize(new Dimension(100,100));

        /* レイアウトを設定します。*/
        frm   .setLayout(new BorderLayout());

        /* コンポーネントを作ります。*/
        btn = new Button("Message");

        /* リスナーを登録します。*/
        btn.addActionListener(this);

        /* フレームに登録します。*/
        frm.add(btn , BorderLayout.CENTER);

        /* フレームを表示させます。*/
        frm.setVisible(true);
    }

    /* ボタンがクリックされた */
    public void actionPerformed(ActionEvent e){
        /* まだダイアログのインスタンスが作られていなければここで作る */
        /* TestクラスのコンストラクタではまだFrameが完全に作られていないので、*/
        /* TestクラスのコンストラクタでDialogのインスタンスを作成できない */
        if(d == null)
            d = new MyDialog(frm);
        /* ダイアログを表示させる */
        d.show();
    }

    public static void main(String args[]){
        new Test();
    }
}

/* ダイアログ */
class MyDialog extends Dialog implements ActionListener{
    Button btn;
    Label  lbl;

    /* コンストラクタ */
    MyDialog(Frame w){
        /* Dialogクラスのコンストラクタを呼ぶ */
        super(w);

        /* 追加するコンポーネントを指定 */
        btn = new Button("Close");
        lbl = new Label("Mssaege");

        /* レイアウトを登録 */
        setLayout(new GridLayout(2,1));

        /* コンポーネントを追加する */
        add(lbl);
        add(btn);

        /* ボタンのリスナーを登録する */
        btn.addActionListener(this);

        /* ダイアログのサイズを自動で設定する */
        pack();
    }

    /* ボタンが押されたら呼ばれる */
    public void actionPerformed(ActionEvent e){
        /* ダイアログを破棄する */
        dispose();
    }
}

実行例


  次にFileDialogを説明します。FileDialogはDialogクラスのサブクラスで、ファイルを選択する際に使用します。
  読み込みモード、描き込みモードがあり、描き込みモードの場合、ファイルがすでに存在するファイルが選択された場合は上書きするかの確認が行われます。

コンストラクタ
FileDialog(Frame owner)
      このダイアログの所有者をownerとしてファイル選択用のモーダルダイアログを作成します。
      ownerが不正な場合はIllegalArgumentExceptionが投げられます。
FileDialog(Frame owner, String title)
      このダイアログの所有者をownerとしてファイル選択用のモーダルダイアログを作成します。
      titleはダイアログのタイトルとなります。
      ownerが不正な場合はIllegalArgumentExceptionが投げられます。
      titleがnullでも例外は投げられません。
FileDialog(Frame owner, String title, int mode)
      このダイアログの所有者をownerとしてファイル選択用のモーダルダイアログを作成します。
      titleはダイアログのタイトルとなります。
      modeはFileDialog.LOAD(読み込み用)かFileDialog.SAVE(描き込み用)を選択します。       ownerあるいはmodeが不正な場合はIllegalArgumentExceptionが投げられます。
      titleがnullでも例外は投げられません。

メソッド
int getMode()
    FileDialog.LOAD(読み込み用)かFileDialog.SAVE(描き込み用)を返します。
void setMode(int mode)
    FileDialog.LOAD(読み込み用)かFileDialog.SAVE(描き込み用)を設定します。
    modeが不正な場合はIllegalArgumentExceptionが投げられます。
String getDirectory()
    選択されたファイルのディレクトリ名が返されます。
    ファイルが選択されていない時はsetDirectoryで指定した文字列が返されます。
    この時setDirectoryで指定されたディレクトリがなくてもこの文字列が返されます。
    ファイルが選択されておらず、setDirectoryが呼ばれていない場合はnullが返されます。
void setDirectory(String dir)
    指定されたディレクトリのファイルを表示させます。
    指定されたディレクトリがない場合はカレントディレクトリを表示させます。
String getFiley()
    選択されたファイル名が返されます。ディレクトリ名は含まれません。
    ファイルが選択されていない時はnullが返されます。
void setDirectory(String file)
    デフォルトファイルを指定します。


←前ページへ :  トップへ :  次ページへ→