Action 이벤트를 이용한 콤보박스
"사과", "배", "체리" 의 3개의 과일 이름을 가진 콤보박스 컴포넌트를 만들고 사용자가 과일을 선택하면 해당하는 이미지를 콤보박스 옆에 출력하는 프로그램 만들어 보기.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
public class Test extends JFrame {
Container contentPane;
String[] fruit = { "사과", "배", "체리" };
ImageIcon[] images = { new ImageIcon("images/apple.jpg"), new ImageIcon("images/pear.jpg"),
new ImageIcon("images/cherry.jpg") };
JLabel imgLabel = new JLabel(images[0]);
Test() {
setTitle("ComboBox");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
JComboBox strCombo = new JComboBox(fruit); // 콤보박스 생성
strCombo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox) e.getSource(); // 콤보박스 알아내기
int index = cb.getSelectedIndex();// 선택된 아이템의 인덱스
imgLabel.setIcon(images[index]); // 인덱스의 이미지를 이미지 레이블에 출력
}
});
contentPane.add(strCombo);
contentPane.add(imgLabel);
setSize(600, 500);
setVisible(true);
}
public static void main(String arg[]) {
new Test();
}
}
실행 결과