JComboBox クラス(ItemListener)

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;

public class Test {
	public static void main (String[] args)
	{
		Win win = new Win("Test Window", "Test Data");
	}
}

/*******************/
/* クラスWinの定義 */
/*******************/
class Win extends JFrame implements ItemListener {

	JComboBox <String> ch;
	JLabel lb_i;
	String str[] = {"hana1.gif", "hana2.gif", "hana3.gif", "hana4.gif", "hana5.gif"};

	/******************/
	/* コンストラクタ */
	/******************/
	Win (String name, String data)
	{
					// Frameクラスのコンストラクタ(Windowのタイトルを引き渡す)
		super(name);
					// レイアウトの変更(行,列,水平ギャップ,垂直ギャップ)
		Container cp = getContentPane();
		cp.setLayout(new GridLayout(2, 1, 5, 10));
					// 上のパネル
		Font f1 = new Font("MS 明朝", Font.PLAIN, 20);
						// パネルの追加
		JPanel pn1 = new JPanel();
		cp.add(pn1);
						// ラベルの追加
		JLabel lb = new JLabel("好きな花は?");
		lb.setFont(f1);
		pn1.add(lb);
						// JComboBoxリストの追加
		ch = new JComboBox <String> ();
		ch.setFont(f1);
		ch.addItem("桜");
		ch.addItem("紫陽花");
		ch.addItem("朝顔");
		ch.addItem("椿");
		ch.addItem("アヤメ");
		pn1.add(ch);
		ch.addItemListener(this);
					// 下のパネル
						// パネルの追加
		JPanel pn2 = new JPanel();
		cp.add(pn2);
						// ラベルの追加
		lb_i = new JLabel(new ImageIcon("hana1.gif"));
		pn2.add(lb_i);
					// Windowの大きさ
		setSize(350, 400);
					// ウィンドウを表示
		setVisible(true);
					// イベントアダプタ
		addWindowListener(new WinEnd());
	}

	/******************************/
	/* 上,左,下,右の余白の設定 */
	/******************************/
	public Insets getInsets()
	{
		return new Insets(35, 10, 10, 10);
	}

	/************************/
	/* 選択されたときの処理 */
	/************************/
	public void itemStateChanged(ItemEvent e)
	{
		if (e.getItemSelectable() == ch) {
			int k = ch.getSelectedIndex();
			lb_i.setIcon(new ImageIcon(str[k]));
		}
	}

	/************/
	/* 終了処理 */
	/************/
	class WinEnd extends WindowAdapter
	{
		public void windowClosing(WindowEvent e) {
			System.exit(0);
		}
	}
}