본문 바로가기
Java

Java GUI - Event

by leo21c 2012. 12. 1.

이벤트는 이벤트를 받을 소스(예를 들어 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