Chapter 10. AWT 이벤트.

Slides:



Advertisements
Similar presentations
이벤트 처리  GUI 운영체제는 이벤트 드리븐으로 동작한다.  사용자와 상호 작용하려면 이벤트를 매끄럽게 처리하는 기술이 필요하다.  안드로이드에는 이벤트를 처리하는 다양한 방법이 있다.  팀 작업을 위해 모든 방법을 숙지해야 하며 자바의 고급 문법이 사용된다.
Advertisements

을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
자바 5.0 프로그래밍.
Windows Function Windows XP Windows 7 Windows 8 FREE 조장 : 김동환 조원 : 전태우
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
OpenCV 안드로이드 연동 환경설정 OpenCV-Android 를 다운 받습니다.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Index SendMemo 기능 Q & A 팀 소개 배경 및 목적 구현
명품 JAVA Essential.
Chap13 이벤트 처리 13.1 : 이벤트란? 13.2 : 자바의 이벤트 모델 13.3 : 이벤트 관련 컴포넌트
최윤정 Java 프로그래밍 클래스 상속 최윤정
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
Lesson 11. 이벤트.
Chapter 13 GUI 프로그래밍 01 GUI 화면 구성 02 GUI 이벤트 처리 03 GUI 메뉴와 툴바 예제 모음 요약
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
이벤트 프로그래밍 안혜선.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
9강. AOP(Aspect Oriented Programming)-I
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
JAVA WINDOW PROGRAMMING
자바 5.0 프로그래밍.
Power Java 제14장 배치 관리자.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
그래픽 사용자 인터페이스와 사건처리.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
7장 인터페이스와 추상 클래스.
Method & library.
자바응용.
10장 tkinter로 GUI 만들기.
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
홀인원2.0 설치 메뉴얼.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
Chapter 02. 자바 기본 문법.
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
법령안편집기 연결버튼 표시가 안 될 경우 정부입법지원센터( 입안 및 심사안을 진행시
Mariadb JDBC PROGRAMMING2
객체기반 SW설계 팀활동지 4.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
11. 어댑터뷰 제목. 11. 어댑터뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
PART 1 앱 인벤터 프로젝트 12 원격 로봇. PART 1 앱 인벤터 프로젝트 12 원격 로봇.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
단축키 기능 1. 단축키 기능 설명 Alt + R 조회 S 저장 I 삽입 A 추가 D 삭제 P 출력 Q 닫기
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
MIDP 네트워크 프로그래밍 ps lab 김윤경.
발표자 : 이지연 Programming Systems Lab.
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Power Java 제14장 배치 관리자.
Java의 정석 제 8 장 예외처리 (Exception handling) Java 정석 남궁성 강의
이 프레젠테이션은 PowerPoint의 새로운 기능에 대해 안내하며, 슬라이드 쇼에서 가장 잘 보입니다
7 생성자 함수.
6 객체.
BoardGame 보드게임 따라가기.
Presentation transcript:

chapter 10. AWT 이벤트

이벤트(Event)라는 것은 윈도우 프로그래밍에서 어떤 특정한 행동이 발생한 그 자체를 의미한다. 이벤트의 정의 이벤트(Event)라는 것은 윈도우 프로그래밍에서 어떤 특정한 행동이 발생한 그 자체를 의미한다. 예를 들어 메뉴를 선택했다는가, 아니면 마우스를 클릭하거나, 윈도우의 크기를 조절하거나 등의 행위를 뜻하는 것이다. 이런한 방식의 프로그래밍을 이벤트 중심의 프로그래밍이라고 하는데 윈도우 프로그래밍에서 중요한 개념중에 하나이다.

이벤트의 정의 이벤트 소스(Event Source)는 이벤트가 발생할 수 있는 대상을 의미하고 그 대상으로부터 이벤트가 발생하면 발생된 이벤트를 처리해서 결과를 낼 수 있도록 해주는 것을 이벤트 핸들러(Event Handler)라 한다.

자바에서의 이벤트 처리 프로그램이 실행중에 운영체제(OS)가 해당 프로그램에서 이벤트가 발생이 되는지를 검사한다. 이벤트의 정의 자바에서의 이벤트 처리 프로그램이 실행중에 운영체제(OS)가 해당 프로그램에서 이벤트가 발생이 되는지를 검사한다. 이때 이벤트가 발생되면 운영체제가 JVM에게 이벤트를 전달하고 JVM은 발생된 이벤트를 처리하기 위하여 이벤트 객체를 생성한다. 그런후 이벤트를 처리하기 위하여 이벤트 객체를 가지고 핸들러를 호출한다.

이벤트 리스너(Event Listener) 이벤트의 정의 이벤트 소스(Event Source) 이벤트 소스는 이벤트가 발생되는 컴포넌트를 말한다. 즉, 버튼, 체크박스, 리스트, 프레임, 마우스 등과 같은 컴포넌트들이 이벤트 소스이다. 이벤트 리스너(Event Listener) 이벤트 소스에서 이벤트가 발생하는지를 검사하고 있다가 이벤트가 발생이 되면 실제적으로 이벤트를 처리할 수 있도록 만든 인터페이스이다. 이벤트 핸들러(Event Handler) 이벤트 리스너에 전달된 이벤트를 실제로 처리할 수 있도록 이벤트 리스너에 포함되어있는 메서드로 발생된 이벤트 객체를 받아와서 실제적으로 처리해주는 기능을 가지고 있다.

이벤트 클래스 구조 모든 이벤트 클래스는 java.util.EventObject 클래스로부터 상속을 받고 있으며 이 클래스에는 이벤트를 발생시킨 객체를 알려주는 getSource() 메서드가 존재한다. 이 메서드는 여러 이벤트가 발생할 때 이벤트를 발생시키는 객체를 구별할 목적으로 사용한다.

이벤트 종류 및 설명 이벤트 클래스 구조 ActionEvent AdjustmentEvent ComponentEvent 개 요 ActionEvent 버튼, 리스트, 메뉴 등의 컴포넌트가 눌리거나 선택이 되었을 때 발생하는 이벤트 AdjustmentEvent 스크롤바와 같은 조정 가능한 컴포넌트에서 조정이 일어나면 발생하는 이벤트 ComponentEvent 컴포넌트의 모습이나 이동, 크기가 변화될 때 발생하는 이벤트 ItemEvent 리스트와 같은 선택항목이 있는 컴포넌트에서 선택항목이 선택될 때 발생되는 이벤트 TextEvent 텍스트 컴포넌트에서 값이 입력될 때 발생하는 이벤트 ContainerEvent 컨테이너에 컴포넌트가 추가되거나 제거될 때 발생하는 이벤트 FocusEvent 컴포넌트에 초점(Focus)이 들어 올 때 발생하는 이벤트 PaintEvent 컴포넌트가 그려져야할 때 발생하는 이벤트 WindowEvent 윈도우가 활성화되거나 비활성화 될 때, 최소, 최대, 종료 될 때 발생하는 이벤트 KeyEvent 키보드로부터 입력이 될 때 발생하는 이벤트 MouseEvent 마우스가 눌려지거나 움직일 때, 마우스 커서가 컴포넌트 영역에 들어가거나 벗어날 때 발생하는 이벤트

ActionEvent 이벤트와 리스너 종류 텍스트 필드에서 엔터를 쳤을 때도 발생되는 이벤트이다.

이벤트와 리스너 종류 ItemEvent 체크박스, 리스트, 초이스 컴포넌트에서 항목을 선택되거나 선택이 해제 되었을 때 발생하는 이벤트이다.

이벤트와 리스너 종류 TextEvent 텍스트 컴포넌트(TextField, TextArea)에서 키가 입력이 되어 내용이 바뀌었을 때 발생하는 이벤트이다. 내용이 바뀔때마다 발생하므로 주의해서 사용해야 된다. 사용자가 입력할때마다 처리해야 되는 경우가 있을경우에 사용하는 이벤트이다.

이벤트와 리스너 종류 KeyEvent 사용자가 키보드와 같은 입력장치를 통해서 키 입력을 했을 때 발생하는 이벤트이다.

MouseEvent 이벤트와 리스너 종류 마우스 관련 이벤트은 마우스 이벤트와 마우스 모션 이벤트 두가지가 있다. MouseMotionEvent는 컴포넌트의 영역 내에서 마우스를 움직였을 때 발생하는 이벤트이만 자체적으로 처리해 주는 클래스는 존재하지 않으며 MouseEvent 클래스를 그대로 사용한다. MouseMotionEvent는 마우스가 자주 이동하기 때문에 필요한 경우만 이벤트를 처리하는 것이 좋다.

MouseEvent 클래스의 주요 멤버필드 이벤트와 리스너 종류 MouseEvent 클래스의 주요 멤버필드 필드 자료형 필드명 static int MOUSE_CLICKED 마우스 버튼이 클릭된 경우 발생되는 이벤트 MOUSE_ENTERED 마우스 커서가 컴포넌트 영역으로 들어왔을 때 발생되는 이벤트 MOUSE_EXITED 마우스 커서가 컴포넌트 영역 밖으로 나가면 발생되는 이벤트 MOUSE_PRESSED 마우스 버튼이 눌려졌을 때 발생하는 이벤트 MOUSE_RELEASED 마우스 버튼이 눌렸다 띄어졌을 때 발생하는 이벤트

마우스 모션 이벤트와 관련 있는 멤버 필드 이벤트와 리스너 종류 필드 자료형 필드명 static int MOUSE_DRAGGED 마우스 버튼이 클릭된 상태에서 동할 때 발생되는 이벤트 MOUSE_MOVED 마우스 커서가 움직일 때 발생되는 이벤트

MouseEvent 클래스의 주요 메서드 이벤트와 리스너 종류 메서드 반환형 Int getClickCount() 마우스가 눌려진 횟수를 얻어온다. point getPoint() 마우스 이벤트가 발생한 좌표를 얻어온다. int getX() 마우스 이벤트가 발생한 X좌표를 얻어온다. getY() 마우스 이벤트가 발생한 Y좌표를 얻어온다. void translatePoint(int x, int y) 이벤트가 발생한 좌표에 주어진 값을 더해서 좌표를 변환한다. boolean isPopupTrigger() 마우스 이벤트가 팝업 메뉴를 부르는 것인지 알려준다.

WindowEvent 이벤트와 리스너 종류 윈도우와 관련되어 윈도우가 활성화, 아이콘화, 비활성홤 및 창이 닫힐 때 발생하는 이벤트이다. AWT에서는 프레임의 종료버튼을 눌러도 아무런 변화가 없는 것을 볼 수 있을 것이다. 그것이 바로 종료버튼을 눌렸을 때 아무런 이벤트를 처리하지않았기 때문이다.

이벤트와 리스너 종류 ActionListener ActionEvent를 처리하는 이벤트 리스너가 ActionListener이다.

이벤트와 리스너 종류 ItemListener ItemEvent를 처리하는 이벤트 리스너가 ItemListener이다.

이벤트와 리스너 종류 TextListener TextEvent를 처리하는 이벤트 리스너가 TextListener이다.

이벤트와 리스너 종류 KeyListener KeyEvent를 처리하는 이벤트 리스너가 KeyListener이다.

이벤트와 리스너 종류 MouseListener 마우스와 관련 있는 이벤트 중 MouseEvent를 처리하는 이벤트 리스너가 MouseListener이다.

이벤트와 리스너 종류 MouseMotionListener 마우스와 관련 있는 이벤트 중 MouseMotionEvent를 처리하는 이벤트 리스너가 MouseMotionListener이다.

이벤트와 리스너 종류 WindowListener WindowEvent를 처리하는 이벤트 리스너가 WindowListener이다.

이벤트 처리 컴포넌트 별 이벤트 종류

이벤트 처리 컴포넌트 이벤트 처리 3단계 이벤트 소스 결정 : 하나의 윈도우에는 여러 개의 컴포넌트가 존재할 수 있으므로 실제로 이벤트가 발생되면 처리할 컴포넌트를 결정한다. 이벤트 리스너 작성 : 이벤트를 실제적으로 처리할 수 있도록 해당 이벤트를 처리할 이벤트 리스너 인터페이스를 이용해서 이벤트 리스너 클래스를 작성한다. 이벤트 소스와 이벤트 리스너 연결 : 이벤트 리스너가 작성이되면 리스너와 이벤트 소스와 연결을 하여 이벤트 소스에서 실제적으로 이벤트가 발생이 되면 처리할 수 있도록 addXXXXListener()함수를 통해 연결을 시켜준다. XXXX부분은 해당 컴포넌트에 붙일 수 있는 리스너 이름을 의미한다. 예를 들어 버튼에 ActionEvent을 처리하기 위하여 버튼에다가 addActionListener를 붙이는 경우이다.

이벤트 어댑터 클래스 지금까지 우리는 이벤트를 처리하기 위하여 이벤트 리스너를 등록하여 처리를 하였다. 리스너가 인터페이스로 되어 있어 리스너에 선언되어 있는 추상메서드를 모두 오버라이드를 시켜야 사용이 가능한 것을 알았다. 즉, 처리하지 않는 메서드까지도 오버라이드하여 처리를 해야하니 굉장히 번거로운 작업이라고 생각할 것이다. 그래서 API에는 이러한 작업을 좀 더 쉽게 처리할 수 있도록 Adapter라는 클래스가 존재한다. Adapter 클래스는 이벤트 리스너 인터페이스들 중에서 추상메서드가 2개이상 존재하는 인터페이스를 구현한 추상 클래스이다. 인터페이스에 있는 모든 메서드를 빈(Empty) 메서드로 재정의 하였기 때문에 인터페이스를 구현하여 불필요한 메서드를 재정의하는 수고를 덜어준다. Adapter 클래스를 상속받은 클래스에서는 자신이 필요한 메서드만을 재정의 하면 된다.

이벤트 어댑터 클래스

이벤트 어댑터 클래스 Adapter 클래스 활용 Adapter 클래스를 사용할 때는 예제에서 봤던 것 처럼 Adapter클래스로부터 상속받는 클래스를 생성하여 처리를 하였다. 이 방법보다 좀 더 효율적으로 처리할 수 있도록 Anonymous 클래스를 이용하는 방법과 Inner 클래스를 이용하는 방법이 있다.