Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sookmyung Women’s Univ. PSLAB Moon, Se won

Similar presentations


Presentation on theme: "Sookmyung Women’s Univ. PSLAB Moon, Se won"— Presentation transcript:

1 Sookmyung Women’s Univ. PSLAB Moon, Se won
MIDP User Interface Sookmyung Women’s Univ. PSLAB Moon, Se won

2 INDEX 1. UI API 구조 2. UI High-Level API 3. UI Low-Level API

3 1. UI API 구조 I MIDP UI API 기본 상속도 Displayable Canvas Screen
Displayable은 표현할 정보를 가지고 있고 display객체는 어떤 displayable객체를 사용자에게 보여줄 것인지 제어 Javax.microedition.lcdui 패키지에서 사용자 인터페이스를 구성하기 위한 api 주어짐 Displayable Canvas Screen Low-Level API High-Level API

4 1. UI API 구조 II High-Level API Low-Level API - 화면 전체에 대해서 동작
J2SE의 AWT 기능은 임시적인 객체를 매우 많이 생성하여 메모리 사용량과 쓰레기 수집기에 상당한 부하를 주기 때문에 MIDP에선 대부분의 기능들을 포기하였으나 플랫폼에 상관없이 지원할 수 있도록 API를 나눈다. High-Level API - 화면 전체에 대해서 동작 - 입출력에 대한 직접적인 개입이 불가능 - 추상적인 이벤트만 제공 Low-Level API - 자유로운 입출력 - 키 입력 이벤트를 직접 처리 - 출력의 경우 Graphics 객체를 이용하여 직접 화면을 그릴 수 있 도록 정의 - 자유로운 표현이 가능하나 처음부터 끝까지 직접 구현 제한된 특성을 가짐으로써 휴대폰 사양에 관계 없이 완벽한 이식성을 제공하고 추상화된 컴포넌트만 제공함으로써 벤더별로 고수준 API 구현이 가볍고 빠르게 동작하게 되었다.

5 2. UI High-Level API Alert List Screen Item Form TextBox ChoiceGroup
TextField List DateField Screen Item Gauge TextBox 1- N ImageItem Form StringItem 고수준 API는 미리 쓰임새를 정의해 둔 몇 개의 추상화 된 컴포넌트 를 제공 Screen class를 기반으로 제목과 티커를 액세스할 수 있는 메소드를 제공받는다.

6 다음 화면으로 넘어가기 전 일정시간 동안 기다리도록 정의되어 있는 screen의 서브 클래스
2.1 Alert 다음 화면으로 넘어가기 전 일정시간 동안 기다리도록 정의되어 있는 screen의 서브 클래스 Constructor - Alert(String title) - Alert(String title, String text, Image image, AlertType type) alert.setTimeout(5000) or alert.setTimeout(Alert.FOREVER) Display.setCurrent(Alert alert, Displayable nextDisplayable) AlertType - ALRAM, CONFIRMATION, ERROR, INFO, WARNING

7 2.2 List Constructor Display.setCurrent(list) List.SELECT_COMMEND
implicit 유형일 경우 선택한 원소가 변경되었을 때 select-command이벤트 발생 Exclusive는 원소에 커서를 두고 버튼을 클릭시 해당 원소를 선택된 원소로 설정 Implicit은 원소에 커서를 두고 버튼을 클릭시 command이벤트를 발생시켜 애플리 케이션에게 알려준다 Multiple은 원소에 대한 선택 여부 설정 2.2 List Constructor - List(String title) - List(String title, ListType t, String[] s_elements, Image[] i_elements) Display.setCurrent(list) List.SELECT_COMMEND getSelectedFlags() & getSelectedIndex() Type - EXCLUSIVE, IMPLICIT, MULTIPLE

8 2.3 TextBox Constructor - TextBox(String title, String text, int maxSize, int constraints) Method - int getMaxSize(), int setMaxSize() - void delete(int offset, int length) - void insert(char[] data, int offset, int length, int position) - void insert(String src, int position) - void setChars(char[] data, int offset, int length) - void setString(String text) Constraint(입력 제약 조건) ANY, ADDR,NUMBERIC,PHONENUMBER, PASSWORD,URL

9 2.4 Form Constructor Item class에서 상속 받은 컴포넌트를 자유롭게 배치 Method
아이템에서 발생하는 이벤트를 받아 처리하는 ItemStateListener를 지정하기 위한 메소드.. 이벤트가 발생하며 ItemStateListener의 itemStateChanged 해당 이벤트 처리 현재 등록된 아이템의 개수를 얻는다. 2.4 Form Constructor Form(String title) Form(String title, Item[] items) Item class에서 상속 받은 컴포넌트를 자유롭게 배치 Method append(Item item) delete(int itemNumber), insert(int itemNum, Item item) get(int itemNum), set(int itemNum, Item item) setItemStateListener(ItemStateListener iListener) size()

10 성능향상을 위해 클래스와 객체 수를 줄이기 위하여 입력 이벤트도 리스너를 통하지 않고 직접 메소드 오버라이딩으로 처리
3.1 UI Low-Level API Canvas 추상 class를 기반 -> method를 상속 받아 overriding Graphics 객체를 사용하여 출력 성능향상을 위해 클래스와 객체 수를 줄이기 위하여 입력 이벤트도 리스너를 통하지 않고 직접 메소드 오버라이딩으로 처리

11 3.2 Canvas class 필드, 메소드 이름 설 명 KEY_NUM0~9, KEY_STAR, KEY_POUND
* 필드, 메소드 이름 설 명 KEY_NUM0~9, KEY_STAR, KEY_POUND ITU_T 표준 키패드의 키에 따른 코드 정의 UP,DOWN,LEFT, RIGHT,FIRE,GAME_A~D 게임에서 필요로 하는 각 액션들에 정의된 상수 getGameAction(), getKeyCode() 키 코드와 게임 액션을 대응시키기 위한 함수 getHeigth(),getWidth(),getKeyName() isDoubleBuffered(),hasRepeatEvents() hasPointerEvents(),hasPointerMotionEvents() Canvas의 크기, 키 이름, 더블버퍼링 여부, 키 입력 반복 이벤트 가능 여부, 포인터 장치 여부, 포인터 움직임 이벤트 가능 여부 등의 플랫폼에 대한 정보를 전달합니다. keyPressed(),keyReleased(),keyRepeated() 키 이벤트 발생시 호출되는 메소드 Pointerdragged(),ponterpressed(), pointerReleased() 포인터 클릭 및 움직임 이벤트 발생시 호출되는 메소드 Paint() 화면 출력 요청 이벤트 발생시 호출되는 메소드 epaint(), serviceRepaints() r화면을 다시 출력하도록 요청하는 메소드 showNotify(),hideNotify(),isShown() 화면 출력 시작 또는 중지될 때 호출되는 메소드 현재 출력 상태를 알려주는 메소드 addCommand(),removeCommand(), setCommandListener() Command 이벤트 관련 메소드

12 3.2 Graphics class I 좌표관련 - translate(int x, int y), getTranslateX(), getTranslateY() 색상관련 - getBlueComponent(), getGreenComponent(), getRedComponent() - setColor(int RGB), setColor(int red, int green, int blue) - getColor(), getGrayScale(), setGrayScale(int value) 선 그리기 관련 - SOLID, DOTTED - setStrokeStyle(int style), getStrokeStyle() 도형 그리기 관련 - drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) - drawLine(int x1, int y1, int x2, int y2) - drawRect(int x, int y, int width, int height)….

13 3.2 Graphics class II 문자열 및 이미지 출력 관련
- HCENTER, LEFT, RIGHT, BASELINE, BOTTOM, TOP, VCENTER - FACE_MONOSPACE, SIZE_LAFGE, STYLE_BOLD…… - drawChar(char c, int x, int y, int anchor) - drawChars(char data[], int offset, int length, int x, int y, int anchor) - drawString(String str, int x, int y, int anchor) - drawString(String str, int offset, int length, int x, int y, int anchor) - drawImage(Image img, int x, int y, int anchor) - charsWidth(char[] ch, int offset, int length) - charsWidth(char ch) - stringWidth(String str) - substringWidth(String str, int offset, int length)

14 3.3 Example 결과 화면


Download ppt "Sookmyung Women’s Univ. PSLAB Moon, Se won"

Similar presentations


Ads by Google