Download presentation
Presentation is loading. Please wait.
1
5장 컴포넌트 (II)
2
개요 ComboComponent CommandBarComponent/Command DateFieldComponent
ImageComponent ProgressComponent ScrollbarComponent TickerComponent 컴포넌트와 관련 인터페이스의 정리
3
ComboComponent ComboComponent는 팝업메뉴 기능을 제공하는 클래스
팝업 메뉴 항목 중 선택된 항목을 보여주는 영역과 팝업 메뉴의 리스트를 보여주는 영역으로 나뉘어 있다. 선택항목을 보여주는 화면에서 SELECT키 입력시 팝업 메뉴 리스트가 보여지며 이 중 어떤 항목을 선택하면 팝업 메뉴 리스트는 화면에서 제거되고 새로운 선택 항목만이 보여지게 된다. 선택항목의 변경을 감시할 수 있는 ChangeListener를 등록하여 사용할 수 있으며, 팝업메뉴에서 새로운 항목을 선택시 ChangeListener의 changed 메소드를 호출하게 된다.
4
ComboComponent 예 선택된 영역(좌)과 SELECT키를 누르면 팝업 리스트를 보여주는 화면(우)
5
ComboComponent 주요 method
public int append(String str) 주어진 문자열로 팝업메뉴의 새로운 항목을 생성하여 팝업메뉴 리스트의 맨 아래 위치에 추가한다. public int insert(int index, String str) 주어진 index 위치에 주어진 문자열로 팝업메뉴의 새로운 항목을 생성하여 팝업메뉴 리스트에 삽입한다. public void set(int index, String str) 주어진 index 위치에 주어진 문자열로 팝업메뉴 항목을 생성하여 새로 지정한다. public void delete(int index) 팝업메뉴 리스트의 주어진 index 위치에 있는 항목을 삭제한다. public String getString() 현재 선택되어 있는 항목의 문자열을 구한다.
6
ComboComponent 주요 method
public int getSize() ComboComponent의 팝업메뉴 리스트 항목들의 개수를 구한다. public int getSelectedIndex() 팝업메뉴 리스트의 항목들 중 선택되어 있는 항목의 인덱스를 구한다 public int getPreferredHeight() 컴포넌트의 적절한 높이를 결정한다. public int getPreferredHeight(int w)
7
ComboComponent 주요 method
public int getPreferredWidth() 컴포넌트의 적절한 폭을 결정한다. public void paintContent(Graphics g) 내부를 칠한다. protected boolean keyNotify(int type, int key) 키 입력을 받으면 호출된다. public void setChangeListener(ChangeListener listener, Object obj) ComboComponent에서 팝업메뉴 리스트의 항목들 중 선택된 항목이 변경된 경우, 변경상태를 감시할 ChangeListener를 설정한다. public void select(int index) 팝업메뉴 리스트에서 주어진 index의 항목을 선택한다.
8
예제 5.1
9
CommandBarComponent/ Command
화면에 현재 화면에 사용자가 내릴 수 있는 명령어를 보여주며, 사용자로부터 명령을 선택 받는다.
10
CommandBar에 Command 객체를 등록
11
CommandBarComponent /Command 주요 생성자
public CommandBarComponent() 커맨드 바 컴포넌트를 생성한다. Command 주요 생성자 public Command(String str, Object obj) public Command(String str, Image img, Object obj) public Command(String str, Image img, Image imgActive, Object obj) public Command(String str, String imgString, Object obj) public Command(String str, String imgString1, String imgString2, Object obj)
12
CommandBarComponent 주요 method
public int addCommand(Command cmd) 커맨드를 하나 추가 시킨다. public void setCommandListener(CommandListener cl, Object obj) 커맨드 Listener를 지정한다. public int getPreferredHeight(int w) 컴포넌트의 적절한 높이를 결정한다. public int getPreferredHeight() public int getPreferredWidth() 컴포넌트의 적절한 폭을 결정한다. public int getSize() 등록된 커맨드의 개수를 구한다.
13
CommandBarComponent 주요 method
public void removeCommand(Command cmd) 커맨드를 삭제한다. public void removeAll() 모든 커맨드를 삭제한다. public void setActiveIndex(int index) 선택된 커맨드를 지정한다. public int getActiveIndex() 선택된 커맨드의 인덱스를 돌려준다. public Command getCommand(int index) 커맨드를 돌려준다. protected boolean keyNotify(int type, int chr) 키 입력을 받으면 호출된다.
14
Command 주요 method public String getString()
명령을 나타내는 문자열을 돌려준다. public Object getExtObject() 생성시 설정한 Object객체를 돌려준다. public Image getNormalImage() 일반적인 이미지를 얻어 온다. public Image getActiveImage() 활성화되었을 때 사용하는 이미지를 얻어 온다.
15
예제 5.2
16
DateFieldComponent 날짜와 시간을 보여주는 필드를 화면에 표시해주고 이 값을 수정할 수 있다.
DateFieldComponent를 생성할 때 지정한 모드에 관계없이 시스템에 설정된 기본 TimeZone과 Date를 사용하여 현재 시간과 날짜로 초기화된 데이타를 가지게 된다. 이 값은 getDate,setDate를 통해서 값을 얻어오거나 수정할 수 있다.
17
DateFieldComponent DateFieldComponent에서는 시간과 날짜를 지정하거나 수정 할 수 있는 3가지 타입의 모드를 제공한다. MODE_TIME 시간을 보여주는 필드를 화면에 출력하고 시간을 수정할 수 있다. MODE_DATE 날짜를 보여주는 필드를 화면에 출력하고 날짜를 수정할 수 있다. MODE_TIME_DATE 날짜와 시간을 보여주는 필드를 화면에 출력하고 각 시간과 날짜를 수정할 수 있다. (책 138,139페이지 참조)
18
3가지 타입의 모드에 따른 출력상태 [MODE_TIME] [MODE_DATE] [MODE_TIME_DATE]
19
모드에 따른 수정화면 [Time Setting] [Date Setting ]
20
DateFiledComponent 주요 method
public Date getDate() DateFieldComponent에서 현재 설정되어 있는 날짜 정보를 가지고 있는 Date객체를 얻어온다. public int getMode() DateFieldComponent에 설정된 모드를 얻어 온다. public TimeZone getTimeZone() DateFieldComponent에 설정되어 있는 TimeZone을 얻어 온다. public void setDate(Date dt) DateFieldComponent에 Date를 설정한다. public void setMode(int mode) DateFieldComponent의 모드를 설정한다. public void setTimeZone(TimeZone tz) DateFieldComponent의 TimeZone을 설정한다. public String getStringValue(int mode) 인자로 주어진 모드에 따라 날짜나 시간 값을 String 형태로 얻어 온다.
21
예제 5.3
22
ImageComponent public class ImageComponent extends Component
이미지데이타를 지정한 정렬형태로 화면에 출력하는 클래스 setLayout(int)메소드를 이용하여 정렬형태를 지정 할 수 있다. 정렬은 이전 장에서 배운 LabelComponent의 정렬 조합규칙과 동일한 기능을 제공. 디폴트로 LAYOUT_LEFT|LAYOUT_TOP이다. 애니메이션을 지원하는 이미지의 경우에는 play()와 stop()메소드를 이용하여 이미지를 제어 할 수 있다.
23
ImageComponent 주요 생성자 public ImageComponent()
public ImageComponent(Image img) 주어진 이미지로 새로운 ImageComponent를 생성한다. public ImageComponent(String str) 주어진 이미지 경로로 새로운 ImageComponent를 생성한다.
24
ImageComponent 주요 method
public void setImage(Image img) ImageComponent에 이미지를 설정한다. public Image getImage() ImageComponent에 설정된 이미지를 얻어온다. public void setImage(String str) ImageComponent에 주어진 이미지 리소스 경로명을 가지고 이미지를 생성하여 설정한다. public void setLayout(int layout) 이미지의 정렬형태를 설정한다. public void play() 이미지가 애니메이션 이미지인 경우에 애니메이션을 시작한다. public void stop() 이미지가 애니메이션 이미지인 경우에 애니메이션을 멈춘다.
25
예제 5.4
26
ProgressComponent 진행상태등을 나타내기 위해 사용하는 콤포넌트
Interactive / NoneInteractive 두 가지 모드가 있으며 생성시에 결정된다. Interactive의 경우 사용자의 키 입력을 받아 setStep에서 정의 된 값만큼 증가 혹은 감소. NoneInteractive모드에서는 사용자의 입력은 받지 않으며 setValue에 의해 값이 변경 . 기본적으로 step값은 1로 되어 있으며 setStep함수에 의해 변경 가능. ProgressComponent의 최소값은 0으로 고정되어 있으며 최대값만 변경 가능 [Progress 상태바(Bar)]
27
ProgressComponent 주요 생성자
ProgressComponent(boolean bInteractive, int max) 0을 최소값으로 하는 새로운 ProgressComponent를 만듦 매개변수 bInteractive true-Interactive 모드 false-NoneInteractive 모드 max Progress의 최대값을 설정한다.
28
ProgressComponent 주요 method
public void setStep(int step) Progress 바(Bar)의 증감 단위를 설정한다 Interactive인 경우 사용자의 입력에 의한 증가 량이므로 사용되며, setValue등에 의한 입력 시에도 주어진 단위 별로 증감이 된다. step값이 변경되는 경우 현재 값도 step단위로 변경된다. 기본값은 1이다. public int getStep() Progress 바(Bar)의 증감 단위를 구한다. public void setMargin(int top, int bottom) Progress 바(Bar)의 상하 여백을 설정한다. (픽셀단위)
29
ProgressComponent 주요 method
public void setMaxValue(int maxValue) Progress의 최대 값을 설정한다. public int setValue(int value) Progress의 현재 값을 설정한다. public int getValue() Progress의 설정되어 있는 현재 값을 구한다. public int getMaxValue() 설정되어 있는 최대값을 구한다. public void setChangeListener(ChangeListener listener, Object obj) ProgressComponent에 ChangeListener를 등록한다.
30
예제 5.5
31
ScrollbarComponent 최대,최소값을 가지고 그 영역 내에서 값을 유동적으로 변경할 수 있는 컴포넌트.
ScrollBarComponent에서는 좌우스크롤 HORIZONTAL과 상하스크롤 VERTICAL의 두 가지 스크롤 방향 값을 제공. 이 값은 setDirection(int direction)을 통해서 지정할 수 있으며, HORIZONTAL과 VERTICAL 이외의 값이 지정된 경우 IllegalArgumentException이 발생 스크롤 바의 값은 사용자의 키 입력에 따라 값이 변경될 수도 있으며 ,setCurrentValue(int) 등의 메소드를 사용하여 스크롤 바의 위치 값을 변경할 수도 있다.
32
ScrollbarComponent의 주요 생성자
public ScrollbarComponent() ScrollbarComponent를 생성한다. public ScrollbarComponent(int direction) 지정한 스크롤 바의 방향 값으로 ScrollbarComponent를 생성한다. publicScrollbarComponent(int direction,int currentValue,int viewAmount,int minimum,int maximum, int chAmount) 주어진 스크롤 바의 각 크기 값과 스크롤 방향 값으로 ScrollbarComponent를 생성한다. 매개변수 direction 스크롤 바의 방향 값. currentValue 현재 스크롤 바의 위치 값. viewAmount 스크롤 바의 영역 크기 값. minimum 스크롤 바의 minimum값. maximum 스크롤 바의 maximum값.
33
스크롤 바 값의 형태
34
ScrollbarComponent의 주요 method
public int getDirection() 현재 지정된 ScrollbarComponent의 스크롤 방향 값을 반환한다. public void setDirection(int direction) 스크롤 바의 스크롤 방향 값을 지정한다. public int getCurrentValue() 스크롤 바의 현재 위치 값(currentValue)을 반환한다. public void setCurrentValue(int newValue) 스크롤 바의 현재 위치 값(currentValue)을 지정한다. public int getMinimum() 스크롤 바의 최소값을 반환한다. public void setMinimum(int newMinimum) 스크롤 바의 최소값을 지정한다. public int getMaximum() 스크롤 바의 최대값을 반환한다.
35
ScrollbarComponent의 주요 method
public void setMaximum(int newMaximum) 스크롤 바의 최대값을 지정한다. public int getViewAmount() 스크롤 바의 영역 크기 값을 얻어온다. public void setViewAmount(int newAmount) 스크롤 바의 영역 크기 값을 지정한다. public int getChangeAmount() 스크롤 시 증감되는 증감 값의 크기를 얻어온다. public void setChangeAmount(int newChAmount) 스크롤 시 증감되는 값의 크기를 지정한다. public int getForegroundColor() 스크롤 바의 전경색을 돌려준다. public void setForegroundColor(int fg) 스크롤 바의 전경색을 지정한다.
36
TickerComponent 문자열과 이미지로 구성되면 우측에서 좌측으로 움직이는 컴포넌트.
넓이 값은 TickerComponent를 추가한 ContainerComponent의 넓이 값과 같다. 높이는 이미지가 문자 한 줄 높이보다 작은 경우 한 줄 높이 값을 가지며, 이미지의 높이가 문자열보다 큰 경우 이미지 높이 값을 가진다. 움직임의 속도 및 움직임의 여부를 setDelay(int) 및 setTIckerState(boolean)를 이용하여 설정할 수 있다. 디폴트로 각각 500(0.5초)과 true이다. TickerComponent에서는 움직임을 제어할 수 있는 기능을 제공하고 있다. 움직임 상태는 setTickerState(boolean)메소드를 사용하여 제어할 수 있다.
37
TickerComponent 예 문자열 또는 이미지가 오른쪽에서 왼쪽으로 흐르는 TickerComponent
38
TickerComponent의 주요 생성자
public TickerComponent(String str, Image img) TickerComponent를 생성한다. 매개변수 str TickerComponent의 문자 데이터 img TickerComponent의 이미지 데이타 혹은null
39
TickerComponent의 주요 method
public void setString(String str) 화면에 출력될 TickerComponent의 문자를 지정한다. public String getString() TickerComponent의 문자를 얻어온다. public void setImage(Image img) TickerComponent의 이미지를 지정한다. public Image getImage() TickerComponent의 이미지를 전달한다. public void setDelay(int delay) TickerComponent의 문자 흐름 속도를 설정한다. public boolean setTickerState(boolean st) TickerComponent의 움직임/정지 상태를 설정한다.
40
예제 5.6
41
컴포넌트와 관련 인터페이스의 정리 public interface ActionListener
public interface ChangeListener public interface CommandListener public interface EventListener public interface GrabKeyListener
42
public interface ActionListener
public void action(Component cmp,Object obj) 리스트에서 action이 발생하면 불린다. 매개변수 cmp action이 발생한 컴포넌트 obj setActionListener시에 넣은 Object 인수
43
public interface ChangeListener
Selection이 변경되면 불리는 인터페이스. 리스트나 choice그룹 등에서 에서 선택상태가 변경되는 경우에 발생하는 이벤트를 처리하는 listener이다. public void changed(Component cmp, Object obj) ChangeListener를 설정한 Component에서 CHANGE 이벤트가 발생한 경우 불리게 된다. CheckboxComponent또는 ListComponent 등의 상태가 변경되게 되면 등록된 Listener의 changed함수가 불려 진다. 매개변수 cmp 이벤트가 발생된 Component obj setChangeListener에서 설정한 Object(확장 파라메터)
44
public interface CommandListener
커맨드의 선택/변경을 알려주는 인터페이스. 커맨드를 내용을 선택하거나, 커맨드의 포커스를 변경하였을 경우 알려주는 인터페이스. public static final int FOCUS_CHANGE 커맨드의 포커스가 변경된 경우의 상수이다. public static final int SELECT 커맨드를 선택한 경우의 상수이다. public void commandAction(Command c, int type, Object obj) 커맨드의 내용이 선택되었거나 커맨드의 포커스가 변경되었을 경우에 이 함수를 호출하여 준다. 매개변수 c 선택된 커맨드나 포커스를 받은 커맨드 type 커맨드 선택 시 SELECT, 커맨드 포커스 변경 시 FOCUS_CHANGE
45
public interface EventListener
Component의 이벤트 발생을 알려주는 인터페이스. 컴포넌트에 발생되는 key, show, focus, pointer이벤트 발생시 이를 알려주는 인터페이스이다. public boolean eventNotify(int type, int arg1, int arg2, int arg3, Object obj) 컴포넌트에서 Key, Show, Focus, Pointer이벤트가 발생한 경우 이 함수를 호출한다. 매개변수 c 선택된 커맨드나 포커스를 받은 커맨드 type 발생된 이벤트의 종류를 나타낸다 (Component.KEY_NOTIFY, Component.SHOW_NOTIFY, Component.FOCUS_NOTIFY, Component.POINTER_NOTIFY) arg1 type의 값에 따라 다양하게 사용 arg2 type의 값에 따라 다양하게 사용 arg3 type의 값에 따라 다양하게 사용 obj setEventListner에서 설정한 Object
46
public interface GrabKeyListener
Key Grab이 설정된 경우 그랩 된 키 이벤트 발생을 알려주는 인터페이스. public boolean grabKeyNotify(int type, int chr, Object obj) 컴포넌트에서 Key, Show, Focus, Pointer이벤트가 발생한 경우 이 함수를 호출하여 준다. 매개변수 c 선택된 커맨드나 포커스를 받은 커맨드 type 발생된 키 이벤트의 종류를 나타낸다 (EventQueue.KEY_RELEASED,EventQueue.KEY_RELEASED, EventQueue.KEY_REPEATED, EventQueue.KEY_TYPED) chr 발생된 키 값 obj setEventListner에서 설정한 Object
Similar presentations