모바일 자바 프로그래밍 MIDP 이벤트 & 그래픽 Ps lab 오민경.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
12. GUI – 그래픽 이야기.
명품 JAVA Essential.
Chapter04 캔버스(2) HTML5 Programming.
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
14. 위피 게임: 가위바위보 게임 초기에 점수=0 처음 이기면 10 점 그 다음부터 이기면 점수=현재 점수*2 지면
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
10. 예외 처리.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
CHAP 19. 구글맵.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Lab 10 Guide: 프린터 출력 예제. 한 페이지의 그림 인쇄 (교재 24장, 쪽)
최윤정 Java 프로그래밍 클래스 상속 최윤정
작업 스케줄링 Lecture #8.
Sookmyung Women’s Univ. PSLAB Moon, Se won
MIDP UI ps lab 김윤경.
모바일 자바 프로그래밍 MIDlet 프로그래밍 Pslab 오민경.
J2ME(Java 2 Micro Edition) 무선 장치용 UI의 핵심 컴포넌트
Lab 2 Guide: 교재 3장 그래픽 예제 ( 쪽) - 펜과 브러시로 그리기 - 튀는 공
2. 자바 애플릿.
제2장 데이터 및 수식.
명품 JAVA Essential.
Lesson 3. 입출력과 제어문.
명품 JAVA Programming 제 12 장 그래픽.
Chapter 13 GUI 프로그래밍 01 GUI 화면 구성 02 GUI 이벤트 처리 03 GUI 메뉴와 툴바 예제 모음 요약
고수준 사용자 인터페이스 프로그래밍 Lecture #4.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
MIDP UI API.
Lesson 6. 형변환.
실전 사운드 처리 프로그래밍 Lecture #11.
명품 JAVA Programming 제 15 장 애플릿과 멀티미디어.
Lesson 10. 애플릿과 그래픽.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
저수준 사용자 인터페이스 프로그래밍 Lecture #6.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Lesson 10. 애플릿과 그래픽.
KHS JDBC Programming 4 KHS
10장. 예외처리.
7장 인터페이스와 추상 클래스.
Java 9장. 인터페이스와 예외처리 public class SumTest {
JAVA Canvas Swing.
자바응용.
인터넷응용프로그래밍 JavaScript(Intro).
Chapter03 캔버스(1) HTML5 Programming.
Sookmyung Women’s Univ. PSLAB Ohe, heejung
LCD Controller Colorbar
Lesson 2. 기본 데이터형.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Clipping 이진학.
웹디자인
컴퓨터공학실습(I) 3주 인공지능연구실.
LabVIEW WiznTec 주임 박명대 1.
자바 5.0 프로그래밍.
12. 상속 : 고급.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
05. 그래픽 빨간색 사각형 그리기 그래픽 그리기 발 표 자 : 07 정 경 오.
윤 홍 란 제 2 장 데이터와 식-3 그래픽 윤 홍 란
MIDP 네트워크 프로그래밍 ps lab 김윤경.
자바 프로그래밍 Thread를 이용한 애니메이션 서울호서전문학교 게임프로그램개발과.
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
자바 객체 지향 프로그래밍 Ps lab 김윤경.
그래픽 컨트롤 (Graphic Control)
Chapter 11. 문서 인쇄 및 파일 형식.
Presentation transcript:

모바일 자바 프로그래밍 MIDP 이벤트 & 그래픽 Ps lab 오민경

MIDP 이벤트 이벤트 전달 : Callback 사용 이벤트 종류 자바의 경우 포인터를 사용하지 않으므로 인터페이스 또는 메소드 오버라이딩을 사용해서 콜백을 구현 이벤트 종류 애플리케이션의 시작, 중지, 종료 이벤트 사용자 인터페이스와 관련된 이벤트 MIDP UI 고수준 API 추상 이벤트 MIDP UI 저수준 API 입력 이벤트

고수준 추상 이벤트 Command 이벤트 Command 유형 Command 메소드 Displayable 인터페이스를 통해 Canvas 또는 Screen등의 객체에 등록, 삭제 CommandListener 인터페이스를 통해서 전달되어 적절한 처리를 하게됨 Command 유형 BACK, CANCEL, EXIT, HELP, ITEM, OK, SCREEN, STOP Command 메소드 getCommandType(), getLabel(), getPriority()

고수준 추상 이벤트(cont.) ItemState 이벤트 Interactive Gauge 객체의 값이 변경될 때 TextField의 값이 변경될 때 DateField의 값이 변경될 때 ChoiceGroup의 선택 항목이 변경될 때 itemStateChanged() 메소드 사용

저수준 이벤트 키 이벤트 게임 액션 이벤트 포인팅 디바이스 이벤트 화면 출력 여부 전환 이벤트 화면 출력 요청 이벤트 ITU_T 표준 키패드의 키를 기준으로 한 키 입력에 대한 이벤트 KeyPressed(), KeyRepeated(), KeyReleased() 게임 액션 이벤트 ITU_T 표준 키패드에 정의되지 않은 키를 호환성을 잃지 않고 지원하기 위해 제공되는 이벤트 포인팅 디바이스 이벤트 포인팅 디바이스를 지원하는 기기에서 사용하기 위한 이벤트 pointerPressed(), pointerDragged(), pointerReleased() 화면 출력 여부 전환 이벤트 해당 Canvas 객체가 화면에 출력이 시작되거나 중지될 때 발생 화면 출력 요청 이벤트 화면을 다시 그리는 것이 필요할 때

MIDP 그래픽 Paint() 메소드 Graphics 객체 Canvas에서 화면 출력을 담당 화면이라는 캔버스에서 사용할 수 있는 붓 Graphics의 기능 컬러 및 폰트 지정 좌표계 2차원 평행이동 클리핑 기능 선, 사각형, 원, 타원 그리기 이미지 출력 문자열 그리기

모바일 자바의 좌표 MIDP 자바 좌표계 원점의 좌표 변경 Translate(int x, int y) getTranslateX() getTranslateY() (0,0) getWidth() getHeight()

모바일 자바의 색상 흑백 화면을 위한 그레이 스케일 색상표 컬러화면을 위한 RGB 색상표 메소드 0 ~ 255 0 : 검은색, 255 : 하얀색 컬러화면을 위한 RGB 색상표 0 ~ 255, 0x000000 ~ 0xFFFFFF 0x000000 : 검은색, 0xFFFFFF : 하얀색 메소드 getBlueComponent(), getFreenComponent() getRedComponent(), getGrayScale(), getColor() setColor(), setGrayScale()

선과 도형 그리기 도형 종류 선긋기 유형 선긋기 유형 메소드 도형 그리기 메소드 타원, 선, 사각형, 둥근사각형 선으로 된 도형, 안이 채워진 도형 선긋기 유형 SOLID, DOTTED 선긋기 유형 메소드 setStrokeStyle(), getStrokeStyle() 도형 그리기 메소드 drawArc(), drawLine() drawRect(), drawRoundRect() fillArc(), fillRect(), fillRoundRect()

문자열 및 이미지 출력 기준점 메소드 기준점을 직접 지정 가능 세로축과 가로축의 두가지로 구분되므로 두가지를 조합해서 사용 기준점 위치 필드 이름 X좌표 : HCENTER, LEFT, RIGHT Y좌표 : BASELINE, BOTTOM, TOP, VCENTER 메소드 drawChar(), drawString(), drawImage()

DrawExample import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class DrawExampleMIDlet extends MIDlet implements CommandListener { Display display; DrawExampleCanvas canvas; List list; String[] drawModes = { "Line", "Arc", "Rectangle" }; Command exitCommand = null; public DrawExampleMIDlet() { display = Display.getDisplay(this); list = new List("DrawExample", List.IMPLICIT, drawModes, null); exitCommand = new Command("Exit", Command.EXIT, 0); list.addCommand(exitCommand); list.setCommandListener(this); canvas = new DrawExampleCanvas(); }

DrawExample(cont.) public void startApp() throws MIDletStateChangeException { display.setCurrent(list); } public void pauseApp() { public void destroyApp(boolean unconditional) throws MIDletStateChangeException { public void goMainMenu() { public void commandAction(Command c, Displayable s) if (c == List.SELECT_COMMAND) { int selected = list.getSelectedIndex(); canvas.setMode(drawModes[selected]); display.setCurrent(canvas);

DrawExample(cont.) } else if (c==exitCommand) { try { destroyApp(false); notifyDestroyed(); } catch (MIDletStateChangeException ex) { } class DrawExampleCanvas extends Canvas { String mode; public DrawExampleCanvas() mode = null; public void setMode(String mode) this.mode = mode;

DrawExample(cont.) public void paint(Graphics g) { // 화면을 흰색으로 채웁니다 g.setGrayScale(255); g.fillRect(0, 0, getWidth(), getHeight()); if (mode==null) return; if (mode.equals(drawModes[0])) { g.setGrayScale(0); g.setStrokeStyle(g.SOLID); g.drawLine(20,20,20,90); g.setStrokeStyle(g.DOTTED); g.drawLine(60,20,60,90); g.drawString("SOLID",20,20,g.HCENTER|g.BASELINE); g.drawString("DOTTED",60,20,g.HCENTER|g.BASELINE); } else if (mode.equals(drawModes[1])) { g.drawArc(15,15,30,30,0,135); g.drawArc(60,15,30,30,0,360); g.fillArc(15,60,30,25,0,135); g.fillArc(60,60,25,25,0,360);

DrawExample(cont.) } else if (mode.equals(drawModes[2])) { g.setGrayScale(0); g.drawRect(5,5,30,30); g.drawRoundRect(40,5,30,30,10,10); g.fillRect(5,40,30,30); g.fillRoundRect(40,40,30,30,5,5); } protected void keyPressed(int keyCode) { goMainMenu();