トップ->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-> 19.List

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

19. List

  リストとはWindowsではリストボックスと呼ばれるコンポーネントで、Choiceのように指定された項目から選択するようなGUIコンポーネントです。Choiceでは現在選択された1つのみが表示され、プルダウンで複数の選択肢が表示されて選べるようになりますが、このListではあらかじめ複数行が表示されており、その中から選びます。Choiceに比べて表示面積が大きくなってしまうのがデメリットですが、あらかじめ選択肢が見えているのでユーザーにとってはわかりやすいというメリットがあります。また、Choiceと違って、複数選択できるのも特徴です。

  通常、性別、年齢、血液型、お住まいの都道府県など、1つしか選択できず、1つを見ればその他のすべての選択肢が容易に想像できるような場合はChoiceを使用します。逆に1つを見ても他のすべての選択肢が想像できない場合(例えば、好きな色、感想など)はListを選びます。>

  なお、ダブルクリックした場合はActionEventが発生します。必要ならばこれも使います。

血液型:
※この例では複数選択できないようにしています。

【使い方】
  • Listのインスタンスを作成します。
  • このインスタンスを配置するFrameなどContainerに追加(addメソッド)する。
  • 項目を追加(addメソッド)します。
  • ItemListenerを追加(addItemListenerメソッド)します。
  • 選択項目に変化があった場合に呼ばれるitemStateChangedメソッドを実装します。

コンストラクタ
List()
      デフォルト(表示行数4行、複数選択不可)のListコンポーネントを作ります。
      表示行数はプログラムで変更できませんので、注意してください。
List(int rows)
      表示行数をrowsとして複数選択不可のListコンポーネントを作ります。
      表示行数はプログラムで変更できませんので、注意してください。
List(int rows, boolean multi)
      表示行数をrowsとしてListコンポーネントを作ります。
       multiがtrueの場合は複数選択が可能になります。
      表示行数はプログラムで変更できませんので、注意してください。

メソッド
void add(String item)
    Listの最後に項目を追加します。
void add(String item, int index)
    indexで指定した位置にメニューの項目を挿入します。indexが0の場合は一番最初に挿入されます。
    indexが現在登録されているメニューよりも後ろ、もしくは負数の場合は、一番最後に追加します。
void remove(int index)
    indexで指定した位置にメニューを削除します。indexが0の場合は一番最初が削除されます。
    indexが不正な場合、ArrayIndexOutOfBoundsExceptionが投げられます。
void remove(String item)
    itemで指定したメニューを削除します。
    itemが登録されていない場合は、IllegalArgumentExceptionが投げられます。
void removeAll()
    登録されている項目すべてを削除し、からにします。
void select(int index)
    indexで指定したメニューを選択します。
    このメソッドを実行してもItemEventは発生しません。
    通常デフォルトでは何も選択されていませんので、初期値を設定するのに使います。
    複数選択可能モードで、indexが-1を指定した場合はすべてを選択します。項目数よりも大きい値を指定した場合や、複数選択できないモードでindexが-1の場合は無視されます。
void deselect(int index)
    indexで指定したメニューを選択解除します。
    このメソッドを実行してもItemEventは発生しません。
    indexが不正な場合、無視されます。
String getItem(int index)
    indexで指定した項目を返します。
    indexが不正な場合はArrayIndexOutOfBoundsExceptionが投げられます。
String[] getItems()
    登録されている項目すべてをString配列として返します。
    登録されていない場合は、配列の長さが0のString配列が返されます。
int getItemCount()
    登録されている項目数を返します。
int getSelectedIndex()
    選択されている項目のインデックスを返します。
    選択されていない場合、複数選択されている場合は-1が返ります。
    主に1つしか選択できないモードで作成されている時に使います。
int getSelectedIndexes()
    選択されている項目のインデックスをint型の配列として返します。
    選択されていない場合、配列の長さが0のint型配列が返されます。
    通常は複数選択可能なモードで作成された場合に使いますが、1つしか選択できないモードで作成された場合でも、少しでも今後複数選択可能モードにバージョンアップする可能性があるならば、こちらのメソッドを使うべきです。
String getSelectedItem()
    選択されている項目を返します。
    選択されていない場合、複数選択されている場合はnullが返ります。
    主に1つしか選択できないモードで作成されている時に使います。
String[] getSelectedItems()
    選択されている項目をStringの配列として返します。
    選択されていない場合、複数選択されている場合は配列の長さが0のString配列が返されます。
    通常は複数選択可能なモードで作成された場合に使いますが、1つしか選択できないモードで作成された場合でも、少しでも今後複数選択可能モードにバージョンアップする可能性があるならば、こちらのメソッドを使うべきです。
boolean isIndexSelected(int index)
    indexで指定された項目が選択されていればtrueが、非選択ならfalseが返ります。
    indexが不正な場合は、falseが返ります。
void addItemListener(AcitonListener il)
    イベントが発生した場合のAcitonListenerを登録します。
void removeItemListener(ItemListener il)
    ilで指定したItemListenerを削除します。
int getRows()
    リストの表示行数を返します。コンストラクタで指定した値です。
boolean isMultipleMode()
    複数選択可能かどうかを返します。
void setMultipleMode(boolean multi)
    複数選択可能・不可能を設定します。

  Listの選択項目が変更された場合はItemEventというイベントが発生します。これを受け取るのはItemListenerです。ItemListenerの項でも解説しましたように、 このItemListenerをインプリメントしたクラスをListに登録(addItemListenerメソッド)します。
  このItemListenerインターフェースをインプリメントするためには、itemStateChangedメソッドを実装しておく必要があります。

メソッド
void itemStateChanged(ItemEvent e)
    イベントが発生した時に呼ばれます。

  以下、例を示します。この例では上下2つのパネルを用意し、上のパネルにはチョイスを、下のパネルにはラベルを配置します。チョイスを変更するとラベルにもその結果が反映されるようにします。


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


public class Test18_19 implements ItemListener{
    List   list;
    Label  label1;
    Label  label2;

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

    public Test18_19(){
        /* フレームを作成します。*/
        Frame frm = new Frame();

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

        /* フレームのサイズを設定します。*/
        frm.setSize(new Dimension(400,150));

        /* リストを作成します。*/
        list = new List(3, true);
        list.add("北海道");
        list.add("青森");
        list.add("東京");
        list.add("大阪");
        list.add("京都");
        list.add("沖縄");

        /* リスナーに登録します。*/
        list.addItemListener(this);

        /* ラベルを作成します。*/
        label1 = new Label("行ってみたい県を選んでください。", Label.LEFT);
        label2 = new Label("", Label.LEFT);

        /* フレームに登録します。*/
        frm.add(label1, BorderLayout.NORTH);
        frm.add(list  , BorderLayout.CENTER);
        frm.add(label2, BorderLayout.SOUTH);

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

    /* リストの選択が変更されると呼ばれます。*/
    public void itemStateChanged(ItemEvent e){
        if( e.getSource() == list ){
            String strLabel = "あなたは";
            for( int i = 0 ; i < list.getItemCount() ; i++ ){
                strLabel += list.isIndexSelected(i) ? list.getItem(i) + ", " : "";
            }
            strLabel += "に行きたいんですね。";
            label2.setText(strLabel);
        }
    }
}


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