440 likes | 624 Views
5. High level GUI Programming (1) J2SE 에서 GUI 프로그래밍 AWT 와 Swing 패키지 사용. WIPI GUI 패키지 라벨 , 버튼 , 텍스트 필드 , 체크박스 등과 같은 컴포넌트 부분 을 적절하게 조합 , 배치함으로써 화면 구성 그래픽 처리를 위한 그림 그리기나 이미지 처리와 관련된 그래픽 관련 클래스 를 사용. ShellComponent Card 클래스와 연결 , 제목 과 명령 입력 컴포넌트 , 작업 컴포넌트
E N D
5. High level GUI Programming (1) • J2SE에서 GUI 프로그래밍 • AWT와 Swing 패키지 사용 • WIPI GUI 패키지 • 라벨, 버튼, 텍스트 필드, 체크박스 등과 같은 컴포넌트 부분을 적절하게 조합, 배치함으로써 화면 구성 • 그래픽 처리를 위한 그림 그리기나 이미지 처리와 관련된 그래픽 관련 클래스를 사용 High level GUI Programming (1)
ShellComponent • Card 클래스와 연결, 제목과 명령 입력 컴포넌트, 작업 컴포넌트 • UI 컴포넌트를 화면에 보여주기 위해 맨 상단에 이 컴포넌트 사용 • GUI 컴포넌트를 하나로 묶어서 처리할 수 있도록 컨테이너(예, AWT)가 필요한데 그것을 담당하는 컴포넌트 • ContainerComponent를 상속하여 구현한 ShellComponent는 하위 컴포넌트의 위치와 크기를 결정해 주는 상위 부모 컴포넌트이다. • ShellComponent 구성도 java.lang.Object org.kwis.msp.lwc.Component org.kwis.msp.lwc.ContainerComponent org.kwis.msp.lwc.ShellComponent High level GUI Programming (1)
모든 GUI 컴포넌트는 자신을 표현하기 위하여 자신 보다 상위에 있는 단 하나의 부모 컴포넌트를 가져야 하는데 그것이 ShellComponent이다. • ShellComponent는 Card 클래스를 상속 받지 않지만, 내부적으로 Card를 가지고 있어 getCard() 메소드를 통해서 Card 객체를 얻음 • 자식 컴포넌트를 화면에 보여주기 위하여 맨 상단에 ShellComponent를 위치하고 그 위에 addComponent 메소드를 통하여 UI 컴포넌트를 등록하여야 한다. (주의 ; addComponent 메소드를 한번만 호출) • ShellComponent 주요 생성자 High level GUI Programming (1)
shell = new ShellComponent();를 사용한 경우 High level GUI Programming (1)
ShellComponent 주요 메소드 High level GUI Programming (1)
FormComponent • UI 컴포넌트는 컨테이너에 부착하지 않으면 독자적인 화면을 구성하지 못함 • 다양한 컴포넌트를 일렬로 배열하여 화면을 구성하는 컴포넌트 • ContainerComponent를 확장하여 자식컴포넌트로서 다양한 컴포넌트를 담아서 화면을 구성하는 컴포넌트 • 여러 개의 자식 컴포넌트를 가지고 있어, 각 컴포넌트의 위치를 결정 • Button, TextField, Label, List 등을 혼합하여 다양한 UI 컴포넌트를 혼합할 수 있으며, addcomponent, removeComponent 메소드를 통해서 각 컴포넌트의 삽입, 추가, 삭제할 수 있다. • 자식 컴포넌트를 수평으로 정렬 ; FormComponent(true) • 자식 컴포넌트를 수직으로 정렬 ; FormComponent(false) • 자식 컴포넌트의 포커스 변경 ; UP / DOWN 키 사용 High level GUI Programming (1)
FormComponent 주요 생성자 High level GUI Programming (1)
FormComponent 주요 메소드 High level GUI Programming (1)
ButtonComponent–‘확인’ 또는 ‘OK’버튼 • 버튼을 누르면 이벤트가 발생하고, 이 이벤트를 처리하는 모듈에 전달하여 원하는 동작을 수행하게 하는 컴포넌트이다. • 버튼의 구성 ; 문자열과 이미지 • ButtonComponent 주요 생성자 • 생성된 버튼을 눌렀을 때 어떤 동작을 수행시키려면 ActionListener을 구현한 뒤 버튼에 다음과 같은 메소드를 등록해 주면 된다. High level GUI Programming (1)
ActionListner 인터페이스는 다음 한 메소드만 정의하고 있다. • ButtonComponent의 주요 메소드 High level GUI Programming (1)
LabelComponent • 핸드폰 화면상에 고정 문자열을 표시할 때 주로 사용하는 컴포넌트이다. • LabelComponent는 setLayout(int)를 사용하여 정렬형태를 지정할 수 있다. • 정렬 조합 규칙 High level GUI Programming (1)
LabelComponent 주요 생성자 High level GUI Programming (1)
LabelComponent 주요 메소드 High level GUI Programming (1)
java.lang.Object org.kwis.msp.lwc.Component org.kwis.msp.lwc.ContainerComponent org.kwis.msp.lwc.FormComponent org.kwis.msp.lwc.ListComponent • ListComponent/ListItemComponent • ListComponent는 리스트 항목들을 화면에 순차적으로 나열해서 보여주고 사용자가 하나 또는 그 이상의 리스트 항목들을 선택할 수 있도록 하는 컴포넌트이다. • 리스트 항목을 구현하는 컴포넌트 ; ListItemComponent • ListComponent 계층도 • ListItemComponent만을 추가할 수 있다. High level GUI Programming (1)
ListComponent 선택방법의 3가지 유형 • ListComponent의 이벤트를 처리하기 위한 2가지 인터페이스 • select 키를 누르거나 숫자 키를 눌러 항목을 선택할 경우 ActionListener의 action() 메소드가 호출 • 포커스 된 항목이 변경되었을 경우 ChangeLisetener의 changed() 메소드가 호출 High level GUI Programming (1)
ListComponent 주요 메소드 High level GUI Programming (1)
ChechboxComponent/CheckboxGroup • CheckboxComponent는 사용자가 여러 종류의 옵션을 선택하는데 많이 사용된다. • CheckboxComponent는 체크박스나 라디오버튼 기능을 구현한 컴포넌트이다. • 체크박스로 사용할 때는 CheckboxComponent가 하나의 객체로 독립적이어서 상호간에 간섭을 하지 않는다. • 라디오버튼으로 사용할 때는 같은 그룹 내의 CheckboxComponent 중 하나가 선택되면 다른 CheckboxComponent들은 선택되지 않는 상태가 된다. • CheckboxGroup으로 묶어진 CheckboxComponent들은 라디오버튼으로 동작하게 된다. • CheckboxComponent 주요 생성자 High level GUI Programming (1)
CheckboxComponent 주요 메소드 • CheckboxGroup을 만들기 위한 생성자 High level GUI Programming (1)
CheckboxGroup 주요 메소드 High level GUI Programming (1)
ComboComponent • ComboComponent는 여러 개의 항목을 나열하고 사용자로 하여금 항목을 선택하게 만드는 컴포넌트이다. (팝업메뉴 기능 제공) • ComboComponent는 선택된 단 하나의 항목만 보여주다가 select 키를 누르면 팝업메뉴 형태로 선택할 수 있는 리스트 항목들을 보여준다. • ComboComponent 생성자 • ComboComponent 주요 메소드 High level GUI Programming (1)
TextBoxComponent • TextBoxComponent는 사용자가 문자를 입력하고 편집하기 위해 사용되는 컴포넌트이다. • TextBoxComponent 계층도 java.lang.Object org.kwis.msp.lwc.Component org.kwis.msp.lwc.TextComponent org.kwis.msp.lwc.TextBoxComponent • TextBoxComponent 생성자 High level GUI Programming (1)
TextBoxComponent 입력 제한자 High level GUI Programming (1)
TextBoxComponent 주요 메소드 High level GUI Programming (1)