이벤트는 이벤트를 받을 소스(예를 들어 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에 추가된다.
'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 |