////////////////////////////////////////////////////////////////////////////////
// << g136b.java >>
//
//  GUI(3):GUI部品(リスト、イベント処理)
//
//  複数の項目から複数の項目を選択するリストを作成し表示する。
//    選択ボタンをクリックすると、選択された項目をラベルに表示する。
//
//  ●Listクラス
//    多数の項目から複数の項目を選択するとき、Listクラスを使う。
//
//  ●Listクラスのコンストラクタ
//    List(int r, boolean b)                       
//      機能:r行分のリストを作成する。bがtrueの場合、複数項目選択が可能となる。
//            bがfalseの場合、複数選択が不可。
//
//  ●Listクラスのメソッド
//    public void add(String s)
//   機能:文字列sをリストの最後に追加する。
//    public String getSelectedItem()
//      機能:現在選択されている項目を返す。
//            選択されている項目がない場合、nullを返す。
//    public int getSelectedIndex()
//      機能:現在選択されている項目のインデックスを返す。
//            選択されている項目がない場合、-1を返す。
//    public String a[] getSelectedItems()
//      機能:現在選択されている項目を配列aとして返す。
//
// ●ItemListenerインターフェースのメソッド
//    void itemStateChanged(ItemEvent e)
//      機能:イベントが発生したとき呼び出される。
//      e   :イベント発生時の状況が記録されている。
//
// ●ActionListenerインターフェースのメソッド
//    void actionPerformed(ActionEvent e)
//      機能:イベントが発生したとき呼び出される。
//      e   :イベント発生時の状況が記録されている。
//
//
////////////////////////////////////////////////////////////////////////////////

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

class g136b implements ItemListener,ActionListener {

  List list;
  Button b;
  Label lab;

  // コンストラクタ。
  g136b() {
    // フレームの作成。
    Frame f = new Frame("フレーム");
    // フレームにレイアウトマネージャ(FlowLayout)を設定。
    f.setLayout(new FlowLayout(FlowLayout.LEFT,20,20));

    // リストの作成。
    list = new List(3,true);      
    list.add("項目1"); 
    list.add("項目2");
    list.add("項目3");
    list.add("項目4"); 
    list.add("項目5");
    // リストをフレーム内に追加。
    f.add(list);

    // ボタンの作成
    b = new Button("選択"); 
    // ボタンをフレーム内に追加。
    f.add(b);

    // 表示用ラベルの作成。
    lab = new Label("                    ");
    lab.setBackground(Color.yellow);
    // ラベルをフレーム内に追加。
    f.add(lab);

    // フレームの大きさを設定。
    f.setSize(300,200);
    // フレームを表示。
    f.setVisible(true);

    // イベントリスナを登録。
    list.addItemListener(this);
    b.addActionListener(this);
  }

  // ItemListenerインターフェースのメソッド。
  public void itemStateChanged(ItemEvent e) {
    if( e.getSource() == list ) {
      String x = list.getSelectedItem();
      int i = list.getSelectedIndex();
      lab.setText("選択された項目:" + x + " インデックス:" + i);
    }
  }

  // ActionListenerインターフェースのメソッド。
  public void actionPerformed(ActionEvent e) {
    if( e.getSource() == b ) {
      String x[] = list.getSelectedItems();
      String y = "選択された項目:";
      for( int i=0; i

実行結果

% javac g136b.java
% java g136b


項目1と項目3を選択し、選択ボタンをクリック後


▼ボタンで項目5を表示・選択し、選択ボタンをクリック後