1 / 31

하위레벨 사용자 인터페이스

하위레벨 사용자 인터페이스. Introduction. Jlet Display Card Graphics Font Image 와 ImageObserver Event ScrollList 만들기. Jlet – (1). “ 모바일 표준 플랫폼 규격에 따라 작성된 자바 언어 응용프로그램이다 . 이 응용프로그램은 응용프로그램 생명주기를 따라야 한다 . ” 이라고 모바일 플랫폼 표준규격에서는 정의 Jlet 은 midp 의 MIDlet 과 매우 유사 Jlet 은 main() 메소드가 없슴

nile
Télécharger la présentation

하위레벨 사용자 인터페이스

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. 하위레벨 사용자 인터페이스

  2. Introduction • Jlet • Display • Card • Graphics • Font • Image와 ImageObserver • Event • ScrollList 만들기

  3. Jlet – (1) • “모바일 표준 플랫폼 규격에 따라 작성된 자바 언어 응용프로그램이다. 이 응용프로그램은 응용프로그램 생명주기를 따라야 한다.”이라고 모바일 플랫폼 표준규격에서는 정의 • Jlet은 midp의 MIDlet과 매우 유사 • Jlet은 main() 메소드가 없슴 • Jlet 은 org.kwis.msp.lcdui.Jlet 클래스를 상속 받고 메소드를 구현 protected abstract void startApp(String[] args) protected abstract void destroyApp(boolean unconditional) protected void pauseApp() protected void resumeApp() startApp(String[] args)는 반드시 구현

  4. Jlet – (2) • Jlet의 life-cycle

  5. Display – (1) • 화면의 출력 관련 함수와 정보를 가지는 클래스 • Display를 구한후에 • Card를 생성하고, • pushCard함수를 호출하여 Display에 Card를 등록 시킨다. • Card의 paint함수에서 그려지는 내용이 화면에 출력된다 static Display getDefaultDisplay() static Display getDisplay(String str) • DISPLAY 의 크기는 getWidth() 메소드와 getHeight() 메소드를 통해서 얻음 • 최소 사양 • 스크린 크기는 96 X 54 이고 4 gray color 또는 256 color 이상을 권장

  6. Display – (2) • Display클래스가 제공하는 함수는 크게 4부류로 구분 • setJletEventListener(), getGameAction()등 이벤트 관련 메소드 • getDefaultDisplay() , pushCard() 등 Card 클래스에 관련된 메소드 • getHeight(),isColor()등 화면에 관한 메소드 • callSerially()와 같은 쓰레드에 관한 메소드이다. 다음과 같은 메소드

  7. CARD • 화면에 출력될 수 있는 최소단위 public Card() public Card(boolean bTrans) public Card(Display d) public Card(Display d, int x, int y, int w, int h) public Card(Display d, int x, int y, int w, int h, boolean bTrans) public Card(int x, int y, int w, int h) 생성자 class CardTest extends Card{ … void paint(Graphikc g){ …} … } 구현하는 방법 위치나 크기를 변경하기 위한 메소드 void move(int x, int y) void resize(int w, int h) protected boolean keyNotify(int type, int key) protected boolean pointerNotify(int type, int x, int y) protected void showNotify(boolean bShow)) 사용자의 이벤트를 받는 메소드

  8. Graphics • Graphics 클래스는 간단한 2차 기하학적인 도형을 그리는 기능을 제공 • 텍스트나 이미지, 선, 사각형, 아크등을 그리고 편집하는 등 아래와 같은 메소드를 제공 • Graphics 클래스에서 제공하는 메소드 들 • 도형 출력 관련 메소드 • 문자 출력 관련 메소드 • 이미지 관련 메소드 • 색깔 관련 메소드 • 클립관련메소드 • 영역복사관련 메소드 • 그리기 모드 관련 메소드

  9. (0,0) (width,0) X (0,height) Y X – Y 좌표 시스템 – (1) • Graphics의 좌표 단위는 pixel • 좌표는 화면의 좌측 상단이 (0, 0)이 되며, 아래로 y축이 증가하고, 오른쪽으로 x축이 증가하는 좌표체계

  10. (0,0) (0,0) (width,0) X (0,height) Y (0,height) Y (width,0) X – Y 좌표 시스템 – (2) • 도형이나 선을 그리는 메소드는 크게 두가지로 구분 • fillXXX() • drawXXX() drawRect(2,2,3,3) fillRect(2,2,3,3)

  11. Color • Graphics 에서는 24bit 칼라를 지원 • 단말기 Color 최소 사양이 4Gray 이상 또는 256color 이상으로 규정 • 색을 지정하기 위해 사용되는 파라미터는 2가지 방법 • SetColor(200,200,200) 처럼 Red, Green, Blue를 따로 사용 • setColor(0xE0FE09) 이렇게 16진수 ColorTest.java page.195

  12. width arcWidth (x,y) 0도부터 45도 이동 arcHeight height 0도 도형 그리기 – (1) • Graphics 클래스에서는 원, 선 , 사각형, 둥근 사각형을 그리는 메소드를 제공 void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) ColorTest.java page.195

  13. 도형 그리기 – (2) ArcTest.java page.199

  14. 문자열 출력 • void drawString(String str, int x, int y, int anchor) 문자열 출력하는 대표적인 메소드 X 좌표 50 위치에 anchor를 Graphics.LEFT, Graphics.HCENTER, Graphics.RIGHT로 바뀌어 출력을 한 결과 Anchor 수평값에 따른 변화

  15. 그리기 모드 • 선이나 도형을 그릴 때 그려지는 선은 두가지 타입 • SOLID • DOTTED void setStrokeStyle(int style) void setXORMode(boolean b) DOTTED StrokeType XOR 모드 그리기

  16. CLIP • 전체 화면 중 일부분에만 작업 할 수 있는 영역을 클립 영역 void setClip(int x, int y, int width, int height) int getClipHeight() int getClipWidth() int getClipX() int getClipY() 설정된 클립 영역 메소드 void clipRect(int x, int y, int width, int height) 않고 클립 영역 내부의 특정 영역만 편집 ClipTest.java page. 210

  17. FONT – (1) • 글꼴을 나타내는 클래스 • 글꼴을 대표하는 멤버변수로는 face와 style 과 size static Font getFont(int face, int style, int size) static Font getDefaultFont() FONT 파리미터

  18. FONT – (2) FontTest.java page. 215

  19. Image & ImageObserver – (1) • 이미지를 나타내는 클래스 static Image createImage(byte[] imagedata, int imageoffset, int imagelength) static Image createImage(Image image) static Image createImage(int width, int height) static Image createImage(String name) public static Image loadImage(String str, ImageObserver io) • 이미지 클래스에서 제공하는 메소드 • 이미지 상태 관련 메소드 • 이미지 수행 관련 메소드 • 이미지 편집관련 메소드 FontTest.java page. 215

  20. Image & ImageObserver – (2) • 움직이는 gif 이미지를 읽어 들이고 play() 한 후 10초후 stop() 하는 프로그램 ImageTest.java page. 219

  21. Image & ImageObserver – (3) • ImageObserver클래스는 이미지의 생성 상태를 볼 수 있도록 해주는 인터페이스 • 이미지가 생성될때 각 이미지 프레임마다 생성된 여부를 알려줄 때 사용되는 인테페이스

  22. EVENT – (1) • Card가 받을 수 있는 이벤트 • protected boolean keyNotify(int type, int key) • protected boolean pointerNotify(int type, int x, int y) • protected void showNotify(boolean bShow) • 플랫폼 마다 다른 제어키를 처리하기 위해서 메소드 static int getGameAction(int key) static int getKeyCode(int gameKey) KEYNOTIFY 메소드처리 EventTest.java page. 225

  23. EVENT – (2) • 사용자로부터 key를 받아들여 축구공의 움직임을 제어하는 축구공 놀이 프로그램 • UP, DOWN, LEFT,RIGHT,FIRE 키만을 사용 축구공 게임 EventTest2.java page. 228

  24. ShallComponent와 CARD 의 이벤트 나누기 – (1) • 무선인터넷 표준규격문서에 보면 ShallComponent 는 “lcdui의 Card에 연결하여 카드로 부터 들어오는 이벤트를 해당 컴포넌트에게 전달해 주는 역할을 한다” 고 정의 • Card와 Component를 같이 사용하기 위해서는 Component가 먼저 그려지고 그 위에 Card가 그려져야 동시에 Component의 모습과 Card의 모습이 그려짐 사용자 입력을 컴포넌트 까지 전달되는 예 MovingBall.java page. 232

  25. ScrollList 만들기 – (1) • ScrollList 는 ListItem 클래스를 순차적으로 배열하여 선택할 수 있게 만드는 클래스 • ListItem은 처음 보여질 때 출력될 이미지와 선택되었을 때 이미지, 문자열 스트링 그리고 예비 영역으로 하나의 문자열스트링과 현재 선택되었는지를 나타내는 필드를 갖는 클래스 • 개발 하는 어플리케이션에 맞게 최대한 가볍게 만드는 것이 우선

  26. ScrollList 만들기 – (2) • ScrollList를 직접 만들어 사용하기 위한 순서 • 1 . ScrollList에 추가될 ListItem클래스를 만든다. • 2 . ListItem의 paint하고 manupulate 할 ScrollList를 만든다. • 3 . ScrollList 와 이를 사용하는 Card와의 인터페이스를 만든다. • 4 . ScrollList를 이용하여 화면에 출력하는 Card를 만든다.

  27. ScrollList 만들기 – (3) • ListItem.java • ScrollList에 추가할 ListItem을 정의한 것 • 멤버 변수 • Image item_img1 : 보통일 때 보이는 그림을 가지고 있음 • Image item_img2 : ListItem 클래스가 선택되었을 때 보이게 될 그림 • String title : ScrollList에 보여질 문자열 • String command : 예비용으로 ListItem의 설명을 별도로 저장할 수 있게 선언 • boolean isActive ListItem 클래스

  28. ScrollList 만들기 – (4) • ScrollList 클래스는 ListItem 클래스를 화면에 출력하는 역할을 하는 클래스 • 멤버 변수 • protected int m_startXItem : 화면의 제일 상위에 그려져야 할 ListItem의 순번을 가지고 있는 변수 • public int m_selectXItem : 현재 선택되어 있어 반전 시켜야 할 ListItem을 갖음 ScrollList 클래스

  29. ScrollListAdaptor.java • package wipi_book_lui; • public interface ScrollListAdaptor • { • public void drawScrollList(); • } ScrollList 만들기 – (5) • Card와 ScrollList의 인터페이스 • Card가 ScrollList를 그리기 위해 필요한 메소드는 ScrollList에서 모두 제공하므로 인터페이스는 ScrollList에서 Card에게 요구할 메소드에 관심을 맞추어야 함

  30. ScrollList 만들기 – (6) ListItem.java page. 243 ScrollList의 수행 결과로 TextBox모드의 모습 EventQuen.UP과 EventQueue.DOWN을 이용하여 전체 화면을 줄일 수 있음 ScrollListdml 수행 결과 로 List모드 일 때의 모습 EventQueue.UP과 EventQueue.DOWN으로 선택 할 수 있으며 EventQueue.SOFT1 이 눌려지면 선택됨 RadioButton 모드 선택하기 위해서는 EventQueue.SOFT1 를 이용하면 됨 ScrollList의 List모드 ScrollList의 RadioButton 모드 ScrollList의 TextBox모드

  31. ScrollList 만들기 – (7) • 소스 분석 • 실행해 보기 ScrollList.java page.245

More Related