[English] [メニュー] [ホーム]

プルダウン選択とイメージ表示


---(アプリケーションの説明)---

画面の上部にプルダウンを置きます。
プルダウンを選択したら下にイメージを出します。
実行画面

---(ソースリスト)---

//Sample12.java
import java.awt.BorderLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class Sample12 {
  private static final String image01_filename = "bk079.jpg";
  private static final String image02_filename = "bk089.jpg";
  private static final String image03_filename = "bk160.jpg";
  private static final String window_title = "プルダウン選択とイメージ表示";
  private static final int locateX = 50;
  private static final int locateY = 50;
  private static final int window_width = 300;
  private static final int window_height = 250;
  JComboBox cb;
  JLabel lbl;
  Icon i01;
  Icon i02;
  Icon i03;
  // 主処理
  public static void main(final String args[]) {
    final Sample12 sample = new Sample12();
  }
  // コンストラクタ
  public Sample12() {
    // フレームを作成
    final JFrame f = new JFrame(Sample12.window_title);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.i01 = new ImageIcon(Sample12.image01_filename);
    this.i02 = new ImageIcon(Sample12.image02_filename);
    this.i03 = new ImageIcon(Sample12.image03_filename);
    this.cb = new JComboBox();
    final String[] strmenu = { "1999", "2000", "2001" };
    for (String element : strmenu) {
      this.cb.addItem(element);
    }
    this.lbl = new JLabel("", this.i01, SwingConstants.CENTER);
    // コンボボックスにアイテムリスナを登録
    this.cb.addItemListener(new SelectItemListener());
    // コンボボックスとラベルをレイアウト
    f.getContentPane().add(this.cb, BorderLayout.NORTH);
    f.getContentPane().add(this.lbl, BorderLayout.CENTER);
    // フレームを表示
    f.setBounds(Sample12.locateX, Sample12.locateY, Sample12.window_width,
        Sample12.window_height);
    f.setVisible(true);
  }
  // コンボボックスで発生したアイテムイベントを受け取るリスナ
  class SelectItemListener implements ItemListener {
    public void itemStateChanged(final ItemEvent ie) {
      final int imgidx = Sample12.this.cb.getSelectedIndex();
      if (imgidx == 0) {
        Sample12.this.lbl.setIcon(Sample12.this.i01);
      } else if (imgidx == 1) {
        Sample12.this.lbl.setIcon(Sample12.this.i02);
      } else if (imgidx == 2) {
        Sample12.this.lbl.setIcon(Sample12.this.i03);
      }
    }
  }
}
次の3つのイメージファイルをclassファイルと同じフォルダに入れてください。