이벤트는 이벤트를 받을 소스(예를 들어 Button)와 어떤 이벤트를 처리할 것인지를 결정하는 Action Event를 설정 해야 한다. Action Event에는 그 이벤트를 받았을 때 처리해야 할 Event Handler 객체를 포함한다.
Event Handler는 각각의 Handler Interface를 Implement 하여 그 Interface의 Virtual 함수를 Overriding해서 원하는 결과를 처리한다.
Event Source - Who
Action Event
- sourcr(대상).addActionListener(Handler 객체)
Event Handler
- 처리할 내용 => 객체
import java.awt.Frame;
import java.awt.List;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
// Frame을 상속 받고 이벤트 핸들러를 인터페이스 연결해서
// 모든 것을 하나의 Class로 처리한다.
public class Awt_exam2 extends Frame implements ActionListener, ItemListener {
TextField tf;
List list;
// 생성자에서 초기화를 한다.
public Awt_Exam02() {
tf = new TextField();
list = new List();
list.add("Java");
list.add("Jsp");
list.add("Spring");
//Action Event에 Event Handler 객체를 입력한다.
//현재 Class안에서 모두 처리 되기 때문에 this(자신) 객체를 넣었다.
tf.addActionListener(this);
list.addItemListener(this);
//BorderLayout을 사용하지 않고 직접 String을 입력해도 된다.
add(tf, "North");
add(list, "Center");
//size를 입력한다.
setSize(200, 300);
//화면에 표시되도록 한다.
setVisible(true);
//윈도우 폼을 X버튼을 눌렀을 때 닫히도록 아래와 같이 처리한다.
WindowListener win = new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
addWindowListener(win);
}
public static void main(String[] args) {
// Frame을 만든다.
Awt_Exam02 ae2 = new Awt_Exam02();
}
@Override
//Event Handler 처리는 함수를 Override해서 처리한다.
public void itemStateChanged(ItemEvent e) {
//List에 Text를 클릭하면 TextField에 넣도록 한다.
List lt = (List)e.getSource();
tf.setText(lt.getSelectedItem());
}
@Override
//Event Handler 처리는 함수를 Override해서 처리한다.
public void actionPerformed(ActionEvent e) {
//이벤트 소스를 얻어와서 형변환을 해야 한다.
TextField t = (TextField)e.getSource();
String str = t.getText();
//List에 Text를 추가한다.
list.add(str);
//입력이 된 후에 TextField의 내용을 지우도록 처리
t.setText("");
}
}
|
실행을 하면 아래와 같은 화면이 표시되면 List를 클릭하면 TextField에 선택한 Text가 표시되고 TextField에 특정 Text를 입력하고 Enter를 치면 List에 추가된다.
LIST
'Java' 카테고리의 다른 글
| Java GUI - Image (0) | 2012.12.01 |
|---|---|
| Java GUI - 간단한 Table 이용방법 (0) | 2012.12.01 |
| Java GUI - 간단한 메모장 만들기 (0) | 2012.12.01 |
| JAVA GUI - Frame, Panel (0) | 2012.12.01 |
| Java path 설정 및 에러(classpath) 해결 방법 (0) | 2012.11.10 |