1 / 28

입 력

5. 입 력. 학습목표 이벤트를 처리하는 여러 가지 형식과 각 형식의 장단점에 대해 상세하게 연구하고 기본적인 이벤트에 대한 실습을 한다 . 사용자의 입력을 자유자재로 처리하기 위해서 반드시 습득해야 하는 중요한 기술 실습 . 내용 이벤트 핸들러 여러 가지 이벤트. 1. 이벤트 핸들러. 이벤트 처리 GUI 환경은 비절차적이며 사용자의 입력에 반응하는 이벤트를 처리하는 식으로 코드를 작성한다 . 이벤트를 작성하는 여러 가지 방법과 문법적 변형이 존재한다 .

asabi
Download Presentation

입 력

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5 입 력

  2. 학습목표 • 이벤트를 처리하는 여러 가지 형식과 각 형식의 장단점에 대해 상세하게 연구하고 기본적인 이벤트에 대한 실습을 한다. • 사용자의 입력을 자유자재로 처리하기 위해서 반드시 습득해야 하는 중요한 기술 실습. • 내용 • 이벤트 핸들러 • 여러 가지 이벤트

  3. 1. 이벤트 핸들러 • 이벤트 처리 • GUI 환경은 비절차적이며 사용자의 입력에 반응하는 이벤트를 처리하는 식으로 코드를 작성한다. • 이벤트를 작성하는 여러 가지 방법과 문법적 변형이 존재한다. • 각 방법이 혼용되므로 모든 방식에 대해 익숙해질 필요가 있다.

  4. 1. 이벤트 핸들러 • 이벤트 처리 • 콜백메서드 재정의. • 특정 이벤트가 발생했을 때 시스템에 의해 자동으로 호출되는 매서드. • 특정 이벤트가 발생한 시점을 정확하게 가로챌 수 있으며, 이벤트에 대한 상세한 정보까지 얻음. • 반드시 상속을 받아야만 한다. • 모든 이벤트에 대한 콜백이 다 정의되어 있지 않다. booleanonTouchEvent (MotionEvent event) booleanonKeyDown (intkeyCode, KeyEvent event) booleanonKeyUp (intkeyCode, KeyEvent event) booleanonTrackballEvent (MotionEvent event)

  5. 1. 이벤트 핸들러 • 이벤트 처리 • 콜백메서드 재정의첫번째 실습 예제

  6. 1. 이벤트 핸들러 • 이벤트 처리 • 리스너 인터페이스 구현. • 리스터(Listener) : 특정 이벤트를 처리하는 인터페이스. • 대응되는 이벤트를 받는 단 하나의 메서드가 선언되어 있다. • 대표적인 몇가지리스너와리스너에 선언된 메서드는 다음과 같다. View.OnTouchListener : booleanonTouch (View v, MotionEvent event) View.OnKeyListener : booleanonKey (View v, intkeyCode, KeyEvent event) View.OnClickListener : void onClick (View v) View.OnLongClickListener : booleanonLongClick (View v) View.OnFocusChangeListener : void onFocusChange (View v, booleanhasFocus) • 이벤트를 처리하려면 리스너를 구현하는 클래스를 선언, 그 객체를 생성해야 한다. • 등록 메서드는“ Set + 리스너“ • 상속을 받지 않아도 임의의 클래스가 구현 가능하다. • 별도의 리스너 클래스를 구현하고 리스너 객체를 생성해야 한다는 면에서 번거롭다.

  7. 1. 이벤트 핸들러 • 이벤트 처리 • 뷰가리스너 구현. • 뷰를 상속받을 경우 뷰도리스너를 구현 할 수 있다. • 자신의 이벤트를 스스로 처리한다는 면에서 기동성 향상. • 뷰를 상속받을 경우에만 이 기법을 쓸 수 있다.

  8. 1. 이벤트 핸들러 • 이벤트 처리 • 익명 이너 클래스 사용. • 익명 이너 클래스 문법을 활용하여 리스너 클래스 선언을 생략한다. • 리스너 생성을 위해 한번만 사용할 클래스 이므로 두 개 이상의 리스너는 만들 수 없다. • 익명 이너 클래스 정의 하는 문법은 다음과 같다.

  9. 1. 이벤트 핸들러 • 이벤트 처리 • 익명 이너 클래스의 임시 객체 사용. • 리스너 객체 두 개 이상 생성할 필요가 없다. • 이름없는 임시 객체로 생성하여 set 메서드의 인수로 전달한다. • 짧고 간단하지만 형식이 생소하다.

  10. 1. 이벤트 핸들러 • 핸들러의 우선순위. • 이벤트 핸들러가 중복 정의되었을 경우 미리 정한 우선순위에 따라 적절한 핸들러를 선택 호출 한다. • 범위가 좁은 핸들러가 먼저 호출한다. • 우선 순위의 핸들러에서true를 리턴하면 다음 순위는 호출되지 않는다.

  11. 1. 이벤트 핸들러 • 외부 변수 액세스. • 리스너는 등록하는 메서드의 지역 메서드가 아니다. • 리스너의 실행 시점은 등록 시점이 아니라 이벤트 발생시점이다. • 리스너에서 외부 객체의 멤버는 자유롭게 참조할 수 있다. • 리스너가 등록 메서드의 지역 변수를 참조하려면 final 지정자가 필요하다. • final은 지역 변수와 리스너의 존재 기간을 일치시킨다.

  12. 1. 이벤트 핸들러 • 외부 변수 액세스. (실습예제)

  13. 2. 여러 가지 이벤트 • 터치 입력. • 손가락으로 화면을 누르는 동작 처리. • 터치 이벤트는 다음 콜백메서드나리스너핸들러로 받는다. booleanonTouchEvent (MotionEvent event) booleanonTouch (View v, MotionEvent event) • event인수로 좌표와 동작이 전달된다 • getX(), getY() : 터치한 좌표 전달

  14. 2. 여러 가지 이벤트 • 터치 입력. (실습예제)

  15. 2. 여러 가지 이벤트 • 터치 입력. (예제)

  16. 2. 여러 가지 이벤트 • 키보드 입력. • 키보드로 문자 입력시의 동작 처리. • 키보드 이벤트는 다음 콜백매서드가 처리한다. 콜백: booleanonKeyDown (intkeyCode, KeyEvent event) 리스너: booleanonKey (View v, intkeyCode, KeyEvent event) • event로 키와 동작이 전달된다 • keyCode인수 : 눌러진 키 • Key Event 클래스는 키보드 이벤트에 대한 여러 가지 정보를 구하는 메서드 제공.

  17. 2. 여러 가지 이벤트 • 키보드 입력. • KeyCode상수.

  18. 2. 여러 가지 이벤트 • 키보드 입력. • getAction메서드 키보드 동작.

  19. 2. 여러 가지 이벤트 • 키보드 입력 (실습예제)

  20. 2. 여러 가지 이벤트 • 키보드 입력 (실습예제)

  21. 2. 여러 가지 이벤트 • 위젯의 이벤트 처리. • 가장 흔하게 발생하는 이벤트는 클릭. • View.OnClickListener인터페이스를 구현하고 리스너에 클릭 처리 코드 작성. - void onClick (View v) • 터치나 키보드 입력에 비해 클릭이라는 동작만 전달 되므로 별도의 인수는 없다. • 뷰가리스너를 구현한 후 핸들러 통합 가능. • 별도의 리스너 객체 생성해서 핸들러 통합 가능.

  22. 2. 여러 가지 이벤트 • 위젯의 이벤트 처리 (실습예제)

  23. 2. 여러 가지 이벤트 • 포커스 관리. • 키보드 이벤트는 포커스를 가진 뷰에게만 전달. • 포커스는 다음 키 입력을 받을 뷰가 누구인지를 가리키는 것을 말함. • 대부분의 운영체제는 포커스를 가진 뷰를 색다르게 표시. • 일반모드 : 모바일 환경의 심플한 디자인과 어울리지 않음. • 터치모드 : 터치 스크린 사용시는 임의의 위젯을 클릭할 수 있으므로 포커스 표시를 하지 않는다. • 터치 모드 전환은 시스템에 관리하며 응용 프로그램이 통제할 수 없다.

  24. 2. 여러 가지 이벤트 • 포커스 관리 (실습예제)

  25. 2. 여러 가지 이벤트 • 포커스 관리. • 위젯의nextFocus* 속성으로 포커스 순서를 조정한다.

  26. 2. 여러 가지 이벤트 • 타이머 이벤트. • 이벤트는 주로 사용자, 시스템 상황 변화에 따라 발생. • 타이머 이벤트는 시계나 타이머 또는 애니메이션이나 백그라운드 감시 작업에도 적합. • 주기적인 작업을 처리하는 방법.

  27. 2. 여러 가지 이벤트 • 타이머 이벤트. • 핸들러로 메시지를 계속 보냄으로써 타이머를 구현한다. • countDownTimer로도 역 카운트 구현 가능하다. • 카운트다운 타이머 클래스 생성자는 다음과 같다 CountDownTimer (long millisInFuture, long countDownInterval)

More Related