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 ListSelectionListener { JList <String> list; JLabel lb_i; String str[] = {"hana1.gif", "hana2.gif", "hana3.gif", "hana4.gif", "hana5.gif"}; String list_n[] = {"桜", "紫陽花", "朝顔", "椿", "アヤメ"}; /******************/ /* コンストラクタ */ /******************/ 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(); pn1.setLayout(new GridLayout(2, 1, 5, 10)); cp.add(pn1); // ラベルの追加 JLabel lb = new JLabel("好きな花は?"); lb.setFont(f1); pn1.add(lb); // JListの追加 list = new JList <String> (list_n); list.setFont(f1); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.addListSelectionListener(this); JScrollPane scroll = new JScrollPane(list); pn1.add(scroll); // 下のパネル // パネルの追加 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 valueChanged(ListSelectionEvent e) { if (e.getSource() == list) { int k = list.getSelectedIndex(); lb_i.setIcon(new ImageIcon(str[k])); } } /************/ /* 終了処理 */ /************/ class WinEnd extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } }