2009年5月5日火曜日

Java AWT Listコンポーネント

一覧リストから項目を選択するためのコンポーネントです。
項目選択時はItemListenerクラスのitemStateChangedメソッドが発生します。
項目ダブルクリック時はActionListenerクラスのActionEventが発生します。
package MyPackage1;

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

public class ListSample {
/*
* エントリーポイント
*/
public static void main(String args[]){
new ListSample();
}

Frame frm;
List lst1;
Label lbl1;

/*
* コンストラクタ
*/
public ListSample(){
//フレームを作成します。
frm = new Frame("ListSample");
frm.setSize(300,300);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//リストを作成します。
lst1 = new List();
//複数選択可能に設定します。
lst1.setMultipleMode(true);
//リストに項目を追加します。
lst1.add("Brue");
lst1.add("Red");
lst1.add("Green");
lst1.add("Black");
lst1.add("White");
lst1.addItemListener(new lst1ItemAdapter());
//ラベルを作成します。
lbl1 = new Label();
//フレームにレイアウトを設定します。
frm.setLayout(new GridLayout(2,1));
//フレームにコンポーネントを追加します。
frm.add(lbl1);
frm.add(lst1);
//フレームを表示します。
frm.setVisible(true);
}

/*
* lst1のItemListener
*/
private class lst1ItemAdapter implements ItemListener{

@Override
public void itemStateChanged(ItemEvent e) {
String selectedStr = "";
for (int idx=0; idx < lst1.getItemCount(); idx++){
if (lst1.isIndexSelected(idx)){
selectedStr += String.valueOf(idx) + ":" + lst1.getItem(idx) + " "; 
}
}
lbl1.setText(selectedStr);
}

}
}

0 件のコメント: