J2ME(Java 2 Micro Edition) 무선 장치용 UI의 핵심 컴포넌트

Slides:



Advertisements
Similar presentations
Android Application. 최신버전 안드로이드 SDK 설치 1. SDK 설치 접속.
Advertisements

All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 소개 Version1.0 Authorubivelox Date21-Feb
- SW_Desing Study Group -
14. 위피 게임: 가위바위보 게임 초기에 점수=0 처음 이기면 10 점 그 다음부터 이기면 점수=현재 점수*2 지면
- 계산기 GUI 구성하기 - 조원: 박강국 오정은 이귀식 김도윤 안영진.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
제7장 이벤트 프로그래밍.
SAP QUERY SAP R/3 4.6C.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
명품 JAVA Programming 제 13 장 스레드와 멀티태스킹.
명품 JAVA Essential.
작업 스케줄링 Lecture #8.
Sookmyung Women’s Univ. PSLAB Moon, Se won
MIDP UI ps lab 김윤경.
알기 쉽게 해설한 Java 8th edition
DB와 WEB 연동(1) [2-Tier] Java Applet 이용
9장 AWT(1).
4장 컴포넌트 (I) org.kwis.msp.lwc.
프로시저 와 인수전달 컴퓨터응용 및 실습 I.
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
[ 단원 08 ] 예외처리와 스레드.
CDC Connected Device Configuration CLDC보다 많은 리소스를 가진 시스템을 대상으로 설정
Power Java 제4장 자바 프로그래밍 기초.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
자바 5.0 프로그래밍.
고수준 사용자 인터페이스 프로그래밍 Lecture #4.
이벤트 프로그래밍 안혜선.
MIDP UI API.
실전 사운드 처리 프로그래밍 Lecture #11.
최용술 장 Thread 최용술
명품 JAVA Essential.
10장 다중 스레드 10.1 스레드 개요 10.2 Thread 클래스 10.3 스레드 생성
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
9장 AWT(1).
프로그램 분석의 구현.
모바일 자바 프로그래밍 MIDP 이벤트 & 그래픽 Ps lab 오민경.
MFC UI for TS Analyzer 서울시립대학교 컴퓨터통계학과 최 용 진.
윤 홍 란 4 장 클래스 작성 윤 홍 란
김 정 석 Web Programming 김 정 석
저수준 사용자 인터페이스 프로그래밍 Lecture #6.
Visual Basic 기초 1 목표: 컴퓨터기반제어에 관련된 학습을 하기 전에 Visual Basic의 기초를 살펴본다.
Serial 통신(RS-232) 2 김성환 기계설계 자동화 공학부 비주얼베이직의 기초사항을 공부합니다.
12 검색.
제1장 서론.
팀명 : Fighting 팀원 : 신현상 최찬수
DataScience Lab. 박사과정 김희찬 (월)
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
Chap10 다중 스레드 Section 1 : 스레드 개요 Section 2 : Thread 클래스와 스레드 생명주기
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
[INA470] Java Programming Youn-Hee Han
MIDP-MOBILE INFORMANTION DEVICE PROFILE
JAVA WINDOW PROGRAMMING
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
자바 5.0 프로그래밍.
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
제8장 쓰레드 프로그래밍.
Barat을 이용한 Code Transformation
제 4 장 클래스 작성 Lab 4- 2.
Outline 클래스의 해부 캡슐화(Encapsulation) 메쏘드의 해부 그래픽 객체(Graphical Objects)
담당 : 황기태 교수님 학번 : ㈜ 이름 : 조성대 제출 :
탐색 선형 탐색, 이진 탐색, 이진 탐색 트리.
자바 프로그래밍 Thread를 이용한 애니메이션 서울호서전문학교 게임프로그램개발과.
Java Programming for Beginners
컴퓨터 프로그래밍 언어 Visual Basic 6.0 √ 원리를 알면 VB가 쉽다.
임베디드 프로그래밍 Lecture #
Presentation transcript:

J2ME(Java 2 Micro Edition) 무선 장치용 UI의 핵심 컴포넌트 인공지능연구실

MIDP UI(User Interface) API High-Level API 이식성을 요구하는 일반 애플리케이션 제작에 사용되는 API 컴포넌트를 비쥬얼하게 보여주기 어렵다 High-Level의 UI 이벤트에만 접근가능 Low-Level API 개발자가 게임 같은 애플리케이션에서 명확한 배치와 그래픽 요소의 제어와 Low-Level 입력 이벤트의 접근 등 특정한 목적에 맞게 제작할 때 사용되는 API 장치에 의존적이기 때문에 이식성이 떨어진다 애플리케이션 개발시 High-Level API와 Low-Level API의 특성을 적절히 고려하여 사용

lcdui package(1) 모든 MIDP UI 클래스들은 lcdui 패키지에 있다 UI 클래스를 사용하기 위해, MIDlets은 다음과 같이 패키지를 import해야 한다 import javax.microedition.lcdui.*;

lcdui package(2) interface 설명 Choice 미리 정의된 선택할 개수의 항목에서 선택하는 사용자 인터페이스 구성 요소를 위해 API를 정의한다 CommandListener 구현된 컴포넌트에서 High-Level 이벤트를 받을 필요가 있는 어플리케이션에 의해 사용된다 Alert 사용자에게 data를 보여주고, 다음 스크린까지 가기 전에 일정한 시간동안 기다리는 스크린 ItemStateListener 상호 작용적인 항목의 내부 상태 변화를 가리키는 이벤트를 받을 수 있는 어플리케이션에 의해 사용된다 AlertType alert의 본질을 가리킨다 ChoiceGroup 한 Form에 있는 선택 가능한 요소들의 집합 Font fonts와 font metrics를 나타낸다 Command 행동의 의미적인 정보를 캡슐화 한 구조물 Graphics 기하학의 단순한 2D를 제공한다 Displayable Display위에 자리 할 수 있는 능력을 가진 객체 Display Display매니저와 시스템의 입력장치를 나타낸다 DateField 달력이나 시간정보를 보여줄 수 있는 편집 가능한 component이며, Form안에 위치한다 Form 항목(images, text, text fields, choice groups)들의 혼합을 포함하는 스크린 TextField Form에 놓일 수 있는 편집 가능한 text component gauge Form에서 사용하기 위하여 bar graph를 구현 ImageItem 이미지 객체가 Form 또는 Alert에 추가될 때 layout을 다룰 수 있게 한다 Screen 모든 High-Level 사용자 인터페이스 클래스의 슈퍼클래스 Item Form 또는 Alert에 추가될 수 있는 component를 위한 슈퍼클래스 Image 그래픽의 이미지 List 선택의 목록을 포함하고 있는 스크린 StringItem String를 포함할 수 있는 항목 TextBox 사용자를 입력하고, 편집할 수 있는 스크린 Canvas Low-Level의 이벤트를 취급하고, 그리기 위해 그래픽을 부르는 어플리케이션을 쓰기 위한 Base class Ticker Display에 관계없이 연속적으로 실행하는 ticker-type의 조각 글, Canvas를 제외한 모든 스크린 타입에 붙여질 수 있다

Displayable(1) Midp의 주요 추상클래스 특정 장치용 그래픽 렌더링을 은닉하고 디스플레이에 나타날 수 있는 객체

Displayable(2) Screen Method Summary Canvas High-Level API를 구현한 Displayable의 sub class로 Alert, Form, List, TextBox의 super class Screen 객체는 제목과 ticker-tape(화면을 가로질러 연속적으로 움직이는 텍스트 조각)을 포함할 수 있다 Method Summary Ticker getTicker() String getTitle() void setTicker(Ticker ticker) void setTitle(String s) Canvas Low-Level API를 구현한 Displayable의 sub class 애플리케이션에서 표현 대상과 표현 방법을 모두 제어할 수 있다

Display(1) Display Method Summary Display class는 디스플레이 매니저를 의미한다 장치로부터 속성을 얻어 오거나 객체들을 장치에 표시되도록 하는 메소드들이 정의 되어 있다 미들릿마다 Display의 인스턴스는 오직 하나만 생성되어야 한다 getDisplay() 메소드를 사용하여 이 인스턴스 레퍼런스를 획득 Method Summary Displayable getCurrent() static Display getDisplay(MIDlet m) boolean isColor() int numColors() //현재 Color의 수를 return void setCurrent(Alert alert, Displayable nextDisplayable) void setCurrent(Displayable nextDisplayable)

Display(2) current Displayable Display 클래스에는 현재의 Displayable 객체를 추출하는 getCurrent() 메소드와 현재의 Displayable을 설정하는 setCurrent() 메소드가 있다 void setCurrent(Displayable nextDisplayable) void setCurrent(Alert alert, Displayable nextDisplayable) 어플리케이션에서는 현재의 Displayable을 제어할 수 있고 Display.setCurrent() 메소드를 언제나 사용할 수 있다

ScreenTest1.java 두개의 Form, 하나의 Ticker를 생성한다 setCurrent() 메소드를 사용하여 2초마다 현재의 Displayable을 전환한다. public void run() { while(true) try{ Thread.sleep(2000); //2초각격으로 Thread를 sleep시킨다 if(display.getCurrent()==s1) //getCurrent와 setCurrent를 이용하여 display전환 display.setCurrent(s2); } else{ display.setCurrent(s1); }catch(Exception e){}

Event와 Event Handling J2ME의 UI(User Interface) Displayable, Display Event, Event Handling 사용자의 조작에 의해 Event가 발생하면 Event Handler에서 Event를 처리한다 UI의 Event High-Level Event Low-Level Event

High-Level Event와 Event Handling(1) High-Level Event 모델은 J2SE의 AWT 1.1이상에서처럼 delegation 모델에 기반을 두었다 Event가 발생하면 Event Source가 Event Listener에 전달된다 Listener의 Event를 처리하는 메소드에서 Event Handling을 한다 High-Level Event Command Event – CommandListener ItemStateChange - ItemStateListener High-Level의 Event Handling 모델

High-Level Event와 Event Handling(2) Command Event의 정보만을 은닉한 클래스 Command 객체의 3가지 정보 Label : Command의 정보를 나타내는 문자열 - String getLabel() Type : Command의 의미를 나타내는 정수 SCREEN(1), BACK(2), CANCEL(3), OK(4), HELP(5), STOP(6), EXIT(7), ITEM(8)이 정의 되어 있다 - int getCommandType() Priority : 같은 화면에서 다른 Command와 비교했을 때의 중요도 Command의 우선순위를 나타내는 숫자가 작을수록 우선순위가 높다 - int getPriority()

High-Level Event와 Event Handling(3) Command Type MIDP에서 Command를 매핑하기 위한 정보만을 제공 MIDP에서는 Command를 특정한 버튼에 매핑하여 원래의 Exit 기능을 수행하게 한다 s1 = new Form("screen with Exit"); Command exitCommand = new Command("종료",Command.EXIT, 1); s1.addCommand(exitCommand); //Form에 Command추가

High-Level Event와 Event Handling(4) Command의 Priority MIDP의 UI에는 Command와 관련된 레이아웃 매니저가 없다 먼저 Command의 Priority에 따라 그 위치를 선택하고 Priority가 높은 Command를 사용자가 직접 누를수 있는 위치에 배치한다 모든 Command가 같은 Priority를 가지고 있다면 먼저 추가된 Command가 처음 선택된다 CommandListener CommandListener는 Command의 이벤트를 처리하는 void CommandAction(Command c, Displayable d)메소드를 정의한 인터페이스이다

Low-Level Event와 Event Handling(1) key-pressed Event key-released Event paint Event Canvas는 Low-Level API를 구현한 Displayable의 sub Class이다 Low-Level Event Handling 모델은 AWT 버전 1.0과 1.02에서 사용하던 inheritance-based Event모델과 비슷하다 Event를 처리 하기 위해서는 컴포넌트 클래스를 상속하고 적절한 Event Handling 루틴을 오버라이딩해야 한다

Low-Level Event와 Event Handling(2) Low-Level Event의 Handling low-level input event를 access하기 위해서나 graphic을 화면에 그리기 위하여 Canvas class를 사용해야 할 때 사용한다 Game application에 action 과 key event를 다룰 수 있는 method를 제공하는 Canvas class를 많이 사용한다 key event는 device의 key code의 정보를 가지고 있다 Key Events KEY_NUM0 ~ KEY_NUM9(0~9), KEY_STAR(*), KEY_POUND(#) Game Actions DOWN, LEFT, RIGHT, FIRE, GAME_A, GAME_B, GAME_C