JAVA/공부

자바 AWT 이벤트

GaeGim 2022. 9. 1. 20:51
반응형
  • 이벤트 소스

이벤트가 발생할 수 있는 대상. 컴포넌트.

 

 

  • 이벤트 리스너

이벤트 소스에서 이벤트가 발생하는지 검사하닥 이벤트가 발생되면 실제적으로 이벤트를 처리할 수 있는 인터페이스

 

 

  • 이벤트 핸들러 

이벤트 리스너에 전달된 이벤트를 실제로 처리할 수 있도록 이벤트 리스너에 포함되어 있는 메서드로 발생된 이벤트 객체를 받아 실제적인 처리를 해주는 기능을 가진다.

 

 

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main extends Frame implements ActionListener {

   Panel p;
   Button input, exit;
   TextArea ta;
   
   public Main() {	//생성자.
   
      super("ActionEnvet Test");
      
      p = new Panel();
      
      input = new Button("input");
      exit = new Button("exit");
      ta = new TextArea();
      
      // 이벤트 소스와 리스너 연결.
      input.addActionListener(this);
      exit.addActionListener(this);
      
      //패널에 컴포넌트 추가.
      p.add(input);
      p.add(exit);
      
      //프레임에 추가.
      add(p, BorderLayout.NORTH);
      add(ta, BorderLayout.CENTER);
      
      //프레임 설정.
      setBounds(300,300,300,200);
      setVisible(true);
   }
   
   // JVM은 버튼이 눌렸을 때 이벤트 객체 생성하고 이를 처리하기 위해 핸들러 호출.
   @Override
   public void actionPerformed(ActionEvent e) {	//이벤트 핸들러.
   
     String name;
     name = e.getActionCommand();	//컴포넌트 텍스트 값 구분.
     
     if(name.equals("input")) {
        ta.append("버튼이 입력되었습니다.\n");
     } 
     else {
        ta.append("프로그램을 종료합니다.\n");
        //Thread.sleep() 메서드 사용 시 예외 처리 필요.
        try {
             Thread.sleep(1000);	//스레드 1초 정지.
         } catch(Exception e) { }
         System.exit(0);	//1초 후 종료.
     }
      }
      
   public static void main(String[] args) {
      new Main();
   }
}
반응형

'JAVA > 공부' 카테고리의 다른 글

OSI 7계층  (0) 2022.09.02
자바 Adapter 클래스  (0) 2022.09.01
스레드  (0) 2022.07.11
예외 처리  (0) 2022.07.11
이너 클래스와 이너 인터페이스  (0) 2022.07.11