Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "모바일 자바 프로그래밍 MIDP 이벤트 & 그래픽 Ps lab 오민경."— Presentation transcript:

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

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

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

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

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

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

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

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

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

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

11 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(); }

12 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);

13 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;

14 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);

15 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();


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

Similar presentations


Ads by Google