본문 바로가기

[JAVA]

[JAVA]10월 14일 스윙 컴포넌트, 콤보박스(JComboBox), 콤보 박스 이벤트 처리 예제제

*콤보 박스의 메소드

생성자

콤보 박스를 생성하기 위해서는 먼저 생성자 중에서 하나를 골라서 호출하여야 한다.

첫번째 생성자는 비어 있는 콤보 박스를 생성한다.

JComboBox combo = new JComboBox();


여기에 항목을 추가 하려면 addItem()메소드를 사용한다.

combo.addItem("dog"); 등등..


콤보 박스의 이벤트 처리를 활용해서 만든 예제를 작성해 보겠다.


public class ComboBoxTest extends JFrame implements ActionListener{

private JLabel label;

public ComboBoxTest() {

this.setTitle("콤보 박스");

this.setSize(300, 200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

String[] animals = {"dog", "lion", "tiger"};

JComboBox animalList = new JComboBox(animals);

animalList.setSelectedIndex(0);

animalList.addActionListener(this);

label = new JLabel();

label.setHorizontalAlignment(JLabel.CENTER);

changePicture(animals[animalList.getSelectedIndex()]);

add(animalList, BorderLayout.PAGE_START);

add(label, BorderLayout.PAGE_END);

this.setVisible(true);

}

public void changePicture(String name){

ImageIcon icon = new ImageIcon(name + ".png");     //이미지 파일 경로

label.setIcon(icon);

if(icon != null)

label.setText(null);

else

label.setText("이미지가 발견되지 않았습니다.");

}

@Override

public void actionPerformed(ActionEvent e) {

JComboBox cb = (JComboBox)e.getSource();

String name = (String)cb.getSelectedItem();

changePicture(name);

}

public static void main(String[] args) {

new ComboBoxTest();

}

}


여기서 주의 할점은 제 코드대로 작성했을시에는 프로잭트 안에 같은 이름의 이미지가 있어야 실행했을때 ImageIcon 이 박힌다. 자세한 내용은 앞서 올린 ImageIcon 글에서 참고 하시길~