자바 Event 핸들러 ItemListener 와 ItemEvent

자바 Event 핸들러 ItemListener 와 ItemEvent


ItemListener와 ItemEvent


  • . Item 타입의 Event는 인터페이스만 가진다 .
  • . 메서드(Method)
  • public void ItemStateChanged(ItemEvent e){}
  • . Item Event는 List, Choice, Checkbox등과 같은 아이템들의 상태가 바뀔때 발생하는 Event다
  • 자바스크립트의 onchange와 같은 역할

ex )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import java.awt.*;
import java.awt.event.*;

class Round19_Ex04_Sub extends Frame implements ItemListener {
private FlowLayout fl = new FlowLayout();
private Choice ch = new Choice();
private List li = new List(3, false);

public Round19_Ex04_Sub() {
super("Test");
this.init();
this.start();
this.setSize(300, 200);
this.setVisible(true);
}

public void init() {
this.setLayout(fl);
ch.add("AAA");
ch.add("BBB");
ch.add("CCC");
this.add(ch);
li.add("AAA");
li.add("BBB");
li.add("CCC");
this.add(li);
}

public void start() {
ch.addItemListener(this);
// addItemListener를 this값 즉 자기자신의 아이템 값을 매게변수로 사용한다.
li.addItemListener(this);
// addItemListener를 this값 즉 자기자신의 아이템 값을 매게변수로 사용한다.
}

public void itemStateChanged(ItemEvent e) {
// itemStateChanged인터페이스로 호출하였기 때문에 반드시 재정의 해주어야 한다.
if (e.getSource() == ch) {
// ItemEvent의 값이 ch인지 비교한다 .
String str = ch.getSelectedItem();
// ch의 바뀐 Item을 String 에 담는다
System.out.println("얻어온 문자열 = " + str);
} else if (e.getSource() == li) {
// ItemEvent의 값이 li인지 비교한다 .
String str = li.getSelectedItem();
// li의 바뀐 Item을 String 에 담는다
System.out.println("리스트에서 얻어온 문자 = " + str);
}
}
}

public class Round19_Ex04 (){
public static void main(String[] ar) {
Round19_Ex04_Sub es = new Round19_Ex04_Sub();
}
}

Share