18장 사용자 인터페이스 18.1 AWT(Abstract Window Toolkit) 18.2 컴포넌트의 이벤트 처리

Slides:



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

자바 5.0 프로그래밍.
Chap12 그래피컬 사용자 인터페이스(GUI)
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
- 계산기 GUI 구성하기 - 조원: 박강국 오정은 이귀식 김도윤 안영진.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Image & Video processing
Java 16장. 스윙 public class SumTest {
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
최윤정 Java 프로그래밍 클래스 상속 최윤정
MIDP UI ps lab 김윤경.
명품 JAVA Programming.
Part 5 사용자 인터페이스 Chapter 14 : 그래피컬 사용자 인터페이스 Chapter 15 : 이벤트 처리
Chap14 스윙(SWING) 14.1 스윙 컴포넌트 14.2 컴포넌트의 이벤트 처리
Kim heesang JDBC Programming 2 Kim heesang
제 4 장 클래스 작성 Lab 4- 2.
9장 AWT(1).
Lesson 12. 사용자 인터페이스(AWT) - 1
Lesson 11. 이벤트.
Java의 정석 제 13 장 AWT와 애플릿 Java 정석 남궁성 강의
4장 컴포넌트 (I) org.kwis.msp.lwc.
Power Java 제19장 배치 관리자(Layout Manager).
Chapter 13 GUI 프로그래밍 01 GUI 화면 구성 02 GUI 이벤트 처리 03 GUI 메뉴와 툴바 예제 모음 요약
어서와 Java는 처음이지! 제8장 그래픽 사용자 인터페이스.
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
이벤트 프로그래밍 안혜선.
forms 객체 입력상자 체크상자, 라디오 버튼 목록상자
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
프로그래머를 위한 Java 2 제4장 AWT 프로그래밍
5장. 참조 타입.
9장 AWT(1).
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
JAVA WINDOW PROGRAMMING
자바 5.0 프로그래밍.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
Power Java 제14장 배치 관리자.
그래픽 사용자 인터페이스와 사건처리.
자바 5.0 프로그래밍.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
JA A V W. 03.
인터넷응용프로그래밍 JavaScript(Intro).
10장 tkinter로 GUI 만들기.
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
JAVA WINDOW PROGRAMMING
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
JA A V W. 06.
Mariadb JDBC PROGRAMMING2
CHAP 21. 전화, SMS, 주소록.
11. 어댑터뷰 제목. 11. 어댑터뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
메뉴(Menu) 컴퓨터응용 및 실습 I.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
Power Java 제14장 배치 관리자.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
Chap18 스윙(SWING) Section 1 : 스윙 컴포넌트 Section 2 : 컴포넌트의 이벤트 처리
7 생성자 함수.
BoardGame 보드게임 따라가기.
Presentation transcript:

18장 사용자 인터페이스 18.1 AWT(Abstract Window Toolkit) 18.2 컴포넌트의 이벤트 처리 18.3 Label 클래스 18.4 Buttons 클래스 18.5 Canvas 클래스 18.6 Checkbox와 CheckboxGroup 클래스 18.7 Choice 클래스 18.8 TextField와 TextArea 클래스 18.9 List 클래스 18.10 Scrollbar 클래스 18.11 배치 관리자(Layout Manager) 18.12 Panel 클래스 18.13 Window와 Frame 클래스 18.14 Dialog와 FileDialog 클래스 18.15 메뉴의 사용

18.1 AWT(Abstract Window Toolkit)- (1) java.awt 패키지 java.awt 패키지 : GUI 구축을 위한 클래스들의 모임 java.awt 패키지에서 제공되는 클래스들의 유형별 분류 컴포넌트의 배치 BorderLayout, FlowLayout, GridLayout, 와 관련된 클래스 GridBagLayout, GridBagConstraints, CardLayout GUI 구성과 Button, Label, Canvas, Checkbox, Choice, Scrollbar, Component 관련된 클래스 List, Menu, TextComponent, TextArea, MenuBar, MenuItem, TextField, CheckboxGroup, CheckboxMenuItem, MenuComponent 그래픽 출력과 Color, Font, FontMetrics, Rectangle, Point, Polygon, 관련된 클래스 Graphics, Image 컨테이너 클래스 Frame, Panel, Window, Container, FileDialog, Dialog 그 외의 클래스 Insets, Dimension, Toolkit, Event, MediaTracker

18.1 AWT(Abstract Window Toolkit)- (1) java.awt 패키지 Button Checkbox Canvas Choice Panel Container ScrollPan Dialog FileDialog Component Label Window List Frame Scrollbar TextArea Object TextComponent TextField MenuBar MenuComponent CheckboxMenuItem MenuItem Menu PopupMenu

18.1 AWT(Abstract Window Toolkit)- (2) Container 클래스 Component 클래스 : 16.2절 참조 Container 클래스 : 컴포넌트를 담는 그릇 역할을 하는 클래스 Frame, Window, Dialog, FileDialog, Panel, Applet 등의 하위 클래스를 가지고 있다 컨테이너는 서브(sub) 컨테이너를 가질 수 있다 일반적으로 서브 컨테이너로 Panel 클래스가 많이 사용된다

GUI 화면 구성의 예 F A B C H (애플릿 전체) D E G

GUI 화면에 대응되는 컴포넌트의 계층 구조 H F G E A B C D 최상위 컨테이너 (Applet) H (애플릿 전체) 컨테이너 (Panel) 컨테이너 (Panel) F G 컨테이너 (Panel) 컨테이너 (Panel) 컨테이너 (Panel) 컨테이너 (Panel) 컨테이너 (Panel) E A B C D 컴포 넌트 컴포 넌트 컴포 넌트 컴포 넌트 컴포 넌트 컴포 넌트 컴포 넌트 컴포 넌트 컴포 넌트 컴포 넌트 (Checkbox) (Checkbox) (Button) (TextArea) (Choice)

18.1 AWT(Abstract Window Toolkit)- (2) Container 클래스 Component add(Component c) 컴포넌트 c를 현재의 컨테이너에 추가하고 c를 반환 Component add(String name, Component c) 컴포넌트 c를 컨테이너에 추가. name은 컴포넌트가 놓일 방향을 지시하는 문자열 객체(p 489 참조) void remove(Component c) 컴포넌트 c를 현재의 컨테이너에서 제거 void setLayout(LayoutManager lm) lm으로 지정된 배치관리자를 현재 컨테이너의 배치관리자로 설정 void addContainerListener(ContainerListener cl) 이벤트를 받아들이기 위한 이벤트 리스너를 등록 void removeContainerListener(ContainerListener cl) 이벤트 리스너의 등록을 해제

18.2 컴포넌트의 이벤트 처리 GUI 컴포넌트에서 발생하는 전형적인 이벤트 처리 형태(예 : 버튼) (1) 이벤트와 연관된 인터페이스 또는 아답터 클래스를 사용하여 클래스 생성 public class MyButton extends Applet implements ActionListener (2) GUI 구축을 위한 컴포넌트 객체를 생성 Button mybutton = new Button("선택"); (3) 이벤트를 받아들인 컴포넌트 객체(여기서는 버튼 객체)에 리스너를 등록 mybutton.addActionListener(this); (4) add() 메소드를 사용하여 컴포넌트를 애플릿 또는 컨테이너에 추가 add(mybutton); (5) 이벤트를 처리할 이벤트 처리 루틴 작성(예 : action 이벤트) public void actionPerformed(ActionEvent ae) { label.setText(ae.getActionCommand()) ; } actionPerformed() : ActionListener 인터페이스에 선언된 메소드([표 17-10]) getActionCommand() : ActionEvent 클래스에서 제공되는 메소드이다(17.4절 참조).

18.2 컴포넌트의 이벤트 처리 예제

18.3 Label 클래스 문자열을 출력하는 기능을 제공 생성자 Label() Label(String str) Label(String str, int align) str : 라벨로 나타낼 문자열 align : 클래스에 정의된 상수 LEFT, CENTER, RIGHT를 사용하여 위치를 지정 메소드 int getAlignment() 현재 설정된 위치값(LEFT, CENTER, RIGHT)을 반환 int setAlignment(int align) 라벨의 위치 값을 설정 String getText() 현재의 Label 객체가 가지고 있는 문자열을 반환 void setText(String str) 현재의 Label 객체의 문자열을 str로 설정

18.3 Label 클래스 예제

18.4 Button 클래스 인터페이스 구축에 많이 사용되는 클래스로서 버튼 기능 제공 생성자 메소드 관련 이벤트 Button(String str) str : 버튼에 표시할 문자열 메소드 String getLabel() 버튼의 레이블을 반환 void setLabel(String str) 버튼의 레이블을 str로 설정 관련 이벤트 일반적으로 버튼과 관련된 이벤트는 action 이벤트로 처리

18.4 Button 클래스 예제

18.5 Canvas 클래스 비어있는 윈도우를 제공하는 클래스 윈도우를 이용하여 다양한 그래픽 출력 가능 생성자

18.5 Canvas 클래스 예제

18.6 Checkbox와 CheckboxGroup 클래스 GUI 설계시 사용자의 선택 기능을 제공하는 클래스 Checkbox 클래스 생성자 Checkbox() Checkbox(String str) Checkbox(String str, boolean state) Checkbox(String str, boolean state, CheckboxGroup group) Checkbox(String str, CheckboxGroup group, boolean state) str : 체크박스 옆에 나타낼 문자열 state : true이면 체크박스가 처음부터 선택된 상태로 나타난다 group : CheckboxGroup 클래스의 객체로서 체크박스를 그룹으로 묶기위해 사용

18.6 Checkbox와 CheckboxGroup 클래스 메소드 boolean getState() 체크박스의 현 상태를 반환 void setState(boolean on) 체크박스의 상태를 on으로 설정 String getLabel() 체크박스의 레이블을 반환 void setLabel(String str) 체크박스의 레이블을 str로 설정 CheckboxGroup 클래스 : Checkbox를 그룹으로 묶는 기능 제공 생성자 CheckboxGroup() Checkbox getSelectedCheckbox() 그룹에서 선택된 체크박스를 반환 void setSelectedCheckbox(Checkbox cb) 그룹에서 cb로 지정된 체크박스를 선택된 상태로 설정 관련 이벤트 : item 이벤트

18.6 Checkbox와 CheckboxGroup 클래스 예제

18.6 Checkbox와 CheckboxGroup 클래스 예제

18.7 Choice 클래스 풀다운 메뉴와 같은 리스트를 제공하는 클래스(리스트중 하나만 선택 가능) 생성자 Choice() 메소드 : 다음 슬라이드 관련 이벤트 : item 이벤트

18.7 Choice 클래스 Choice 클래스의 메소드 void add(String str) str로 지정된 항목을 추가 throws NullPointerException void addItem(String str) str로 지정된 항목을 추가 void addItemListener(ItemListener il) 리스너를 등록 String getIndex(int i) i 번째 항목을 반환 int getSelectedIndex() 선택된 항목의 인덱스를 반환 String getSelectedItem() 선택된 항목의 이름(문자열)을 반환 void insert(String str, int i) str로 지정된 항목을 i번째 인덱스 위치에 추가 throws IllegalArgumentException void remove(int i) i 번째 항목을 삭제 void removeAll() 모든 항목을 삭제 void removeItemListener(ItemListener il) 등록된 리스너를 해제 void select(int i) i 번째 항목을 선택 void select(String str) str로 지정된 항목을 선택

18.7 Choice 클래스 예제

18.8 TextField와 TextArea 클래스 이 두개의 클래스는 TextComponent 클래스로부터 상속된 클래스이다(그림18-1참조) TextComponent 클래스의 주요 메소드 : 다음 슬라이드 TextField 클래스 : 텍스트 한 줄을 입력 받기 위한 클래스 생성자 TextField() TextField(String str) TextField(int cols) TextField(String str, int cols) str : 텍스트 필드에 나타낼 초기 문자열 cols : 텍스트 필드의 폭. 입력되는 내용이 크기를 벗어나면 스크롤 되면서 계속 입력된다.

18.8 TextField와 TextArea 클래스 TextComponent 클래스의 주요 메소드 void select(int start, int end) 텍스트의 start 위치부터 end 위치까지를 선택 void selectAll() 컴포넌트의 모든 텍스트를 선택 void setEditable(boolean flag) 컴포넌트의 텍스트를 수정 가능하게 하기 위해서는 flag를 true로하여 이 메소드를 수행. 아니면 false로 설정 void setSelectionEnd(int end) end로 지정된 위치를 선택된 텍스트의 끝으로 설정 void setSelectionStart(int start) start로 저징된 위치를 선택된 텍스트의 시작으로 설정 void setText(String str) 컴포넌트의 텍스트를 str로 설정 void addTextListener(TextListener tl) 리스너를 등록 void removeTextListener(TextListener tl) 리스너를 해제 String getSelectedText() 사용자에 의해 선택된 텍스트를 문자열로 반환 int getSelectionEnd() 선택된 텍스트의 마지막 문자의 인덱스를 반환 int getSelectionStart() 선택된 텍스트의 첫 번째 문자의 인덱스를 반환 String getText() 컴포넌트의 내용을 문자열로 반환 Boolean isEditable() 컴포넌트가 수정 가능하면 true를, 아니면 false를 반환

18.8 TextField와 TextArea 클래스 void addActionListener(ActionListener al) ActionListener를 등록 void removeActionListener(ActionListener al) ActionListener를 제거 char getEchoChar() 에코 문자를 반환 void setEchoChar(char c) 컴포넌트에 에코 문자를 설정

18.8 TextField와 TextArea 클래스 생성자 TextArea() TextArea(String str) TextArea(int rows, int cols) TextArea(String str, int rows, int cols) TextArea(String str, int rows, int cols, int scrollbars) str : 초기에 나타낼 문자열 rows, cols : 텍스트 창의 폭과 높이 scrollbars : 텍스트 창에 나타낼 스크롤바의 형태를 지정한다. 스크롤바를 지 정하기 위해 상수 사용 SCROLLBARS_BOTH 수직, 수평 스크롤 사용 SCROLLBARS_HORIZONTAL_ONLY 수평 스크롤만 사용 SCROLLBARS_VERTICAL_ONLY 수직 스크롤만 사용 SCROLLBARS_NONE 스크롤 사용 안함

18.8 TextField와 TextArea 클래스 void append(String str) str로 지정된 문자열이 첨가된다 void insertText(String str, str로 지정된 문자열이 index로 지정된 위치에 삽입된다 int index) void replaceText(String str, startIndex와 endIndex 사이의 문자열이 str로 대치된다 int startIndex, int endIndex)

18.8 TextField와 TextArea 클래스 예제

18.9 List 클래스 여러 개의 항목중에 하나 또는 하나 이상을 선택할 수 있는 기능을 제공 생성자 메소드 List() List(int rows) List(int rows, boolean multiple) rows : 리스트 창의 크기로서 몇 개의 항목을 보이게 할 것인지를 지정 multiple : true로 지정되면 리스트 항목 중에서 여러 개를 선택할 수 있 음을 의미 메소드 void add(String str) str로 지정된 항목을 리스트 객체에 추가 void add(String str, int i) str로 지정된 항목을 리스트의 i 번째 위치에 추가 void addActionListener(ActionListener al) Action 리스너를 등록 void addItemLIstener(ItemListener il) Item 리스너를 등록 void deselect(int i) i번째 인덱스의 항목을 해제 String getItem(int i) i번째 인덱스의 항목을 문자열로 반환

18.9 List 클래스 메소드(계속) int getItemCount() 항목의 개수를 반환 String[] getItems() 리스트의 모든 항목을 포함하는 문자열 배열을 반환 int getSelectedIndex() 선택된 항목(한 개)의 인덱스를 반환 int[] getSelectedIndexes() 선택된 항목(여러개)의 인덱스를 정수 배열로 반환 String getSelectedItem() 선택된 항목(한 개)을 문자열로 반환 String[] getSelectedItems() 선택된 항목(여러개)을 문자열 배열로 반환 Object[] getSelectedObjects() 선택된 항목을 Object 의 배열로 반환 boolean isMultipleMode() 현재의 리스트 객체에서 다수개의 항목을 선택할 수 있으면 true를, 아니면 false를 반환 void remove(String str) 리스트에서 str로 지정된 항목을 삭제 void remove(int i) 리스트에서 i번째 인덱스 항목을 삭제 void removeAll() 리스트의 모든 항목을 삭제 void removeActionListener(ActionListener al) Action 리스너의 등록을 해제 void removeItemListener(ItemListener il) Item 리스너의 등록을 해제 void select(int i) i번째 항목을 선택 throws IllegalArgumentException void setMultipleMode(boolean flag) i번다수개의 선택 항목을 위해서는 flag를 true로 설정 하고, 그렇지 않으면 false로 설정째 항목을 선택

18.9 List 클래스 예제

18.10 Scrollbar 클래스 스크롤바는 다른 컴포넌트와 같이 사용되기도 하지만 독자적으로도 사용될 수 있다 생성자 Scrollbar(int orientation) Scrollbar(int orientation, int value, int width, int min, int max) orientation : 스크롤바의 방향을 지정하는 상수로 HORIZONTAL과 VERTICAL이 사용 value : 스크롤의 초기 값 width : 스크롤 폭의 크기 min, max : 스크롤의 최소값과 최대값

18.10 Scrollbar 클래스 메소드 관련 이벤트 : adjustment 이벤트 void addAdjustmentListener(AdjustmentListener al) Adjustment 리스너를 등록 void removeAdjustmentListener(AdjustmentListener al) 등록된 Adjustment 리스너를 제거 int getValue() 스크롤 바의 값을 반환 void setValue(int i) 스크롤 바의 값을 설정 관련 이벤트 : adjustment 이벤트

18.10 Scrollbar 클래스 예제

18.11 배치 관리자(Layout Manager) 자바는 컨터이너에 컴포넌트를 배치할 수 있는 다양한 방법 을 배치관리자 클래스로 제공 FlowLayout, BorderLayout, GridLayout 등 다양한 배치 관리자 클래스 제공 Container 클래스의 setLayout() 메소드를 사용하여 배치 관리자를 설정

18.11 배치 관리자(Layout Manager) - (1) FlowLayout 컴포넌트를 수평 방향으로 배치하는 관리자 생성자 FlowLayout() FlowLayout(int align) FlowLayout(int align, int hgap, int vgap) align : 정렬방식을 지정하는 상수. LEFT, CENTER, RIGHT를 사용 hgap, vgap : 컴포넌트 사이의 수직, 수평 간격을 지정하는 값으로서 픽셀단위

18.11 배치 관리자(Layout Manager) - (1) FlowLayout 예제

18.11 배치 관리자(Layout Manager) - (2) BorderLayout 컴포넌트를 추가할 때 방향을 지정하여 추가할 수 있는 기 능을 제공. 지정할 수 있는 방향은 East, West, South, North, Center 생성자 BorderLayout() BorderLayout(int hgap, int vgap) hgap, vgap : 컴포넌트들 사이의 간격을 의미하며 픽셀단위로 지정 컴포넌트를 추가하는 add() 메소드에 방향을 지정 void add(String name, Component comp)

18.11 배치 관리자(Layout Manager) - (2) BorderLayout 예

18.11 배치 관리자(Layout Manager) - (3) GridLayout 컴포넌트를 행과 열을 가진 배열 형태로 배치 생성자 GridLayout() GridLayout(int rows, int cols) GridLayout(int rows, int cols, int hgap, int vgap) rows, cols : 배치할 행과 열 hgap, vgap : 컴포넌트 사이의 간격. 픽셀 단위

18.11 배치 관리자(Layout Manager) - (3) GridLayout 예

18.12 Panel 클래스 Container 클래스로부터 상속된 클래스로서 컴포넌트들을 담는 그릇역할을 하는 클래스 애플릿에 여러 개의 Panel 객체를 생성. 각각의 Panel 객체 에 배치관리자를 설정하여 컴포넌트들을 배치할 수 있다 생성자 Panel()

18.12 Panel 클래스 예

18.13 Window와 Frame 클래스 Window 클래스 : 타이틀이나 메뉴가 없는 단순한 윈도우를 제공하는 클래스 메소드 void show() 생성된 윈도우 객체를 나타낸다 void dispose() 윈도우 객체를 제거한다 void pack() 윈도우를 초기 크기로 설정한다 Frame 클래스 : Window 클래스의 하위 클래스. Frame 클래스의 객체는 타이틀이나 메뉴등을 사용할 수 있다. 일반적으로 윈도우를 생성할 때 많이 사용하는 클래스 생성자 Frame() Frame(String title) title : 윈도우의 타이틀 바에 나타낼 문자열

18.13 Window와 Frame 클래스 Frame 클래스의 메소드 관련 이벤트 : window 이벤트 발생 MenuBar getMenuBar() 현재 윈도우의 메뉴바를 MenuBar 객체로 반환 void setmenuBar(MenuBar mb) 현재의 윈도우에 mb로 지정된 메뉴바를 설정 String getTitle() 현재 윈도우의 타이틀을 문자열로 반환 void setTitle(String str) 현재 윈도우의 타이틀을 str로 설정 관련 이벤트 : window 이벤트 발생

18.13 Window와 Frame 클래스 예

18.14 Dialog와 FileDialog 클래스 다이어로그 윈도우 : 사용자에게 간단한 정보를 알리거나 받아들이기 위해 사용 modal 다이어로그 윈도우 : 사용자에 의해 윈도우가 처리(OK 버튼을 누르는 등)되어야만 응용 프로그램이 계속 진행된다 modeless : 다이어로그 윈도우가 사용자에 의해 처리되지 않아도 응용 프로그램이 계속 진행될 수 있다

18.14 Dialog와 FileDialog 클래스 생성자 Dialog(Frame parent) Dialog(Frame parent, boolean flag) Dialog(Frame parent, String title) Dialog(Frame parent, String title, boolean flag) parent : 다이어로그 윈도우를 제어하는 Frame 타입의 부모 윈도우 flag : true이면 modal 다이어로그 윈도우를 의미. false이면 modeless 다이어로그 윈도우를 의미 title은 다이어로그 윈도우에 나타낼 타이틀

18.14 Dialog와 FileDialog 클래스 파일을 읽어오고 파일을 저장하기 위한 파일 선택 윈도우를 제공하는 클래스 생성자 FileDialog(Frame parent) FileDialog(Frame parent, String str) FileDialog(Frame parent, String str, int rw) parent : 다이어로그 윈도우를 제어하는 부모 윈도우를 의미 str : 타이틀 rw : 파일을 읽어올것인지, 저장할 것인지를 지정하는 상수로서 LOAD와 SAVE가 사용

18.14 Dialog와 FileDialog 클래스 tring getDirectory() 디렉토리 경로를 반환 String getFile() 파일 이름을 반환 void setFile(String str) str로 파일 이름을 설정

18.14 Dialog와 FileDialog 클래스 예제

18.14 Dialog와 FileDialog 클래스 예제

18.15 메뉴의 사용 메뉴와 관련된 클래스 : MenuBar, Menu, MenuItem CheckboxMenuItem

18.15 메뉴의 사용 메뉴와 관련된 클래스의 계층 구조 Button Checkbox Canvas Choice Panel Container ScrollPan Dialog FileDialog Component Label Window List Frame Scrollbar TextArea Object TextComponent TextField MenuBar MenuComponent CheckboxMenuItem MenuItem Menu PopupMenu

18.15 메뉴의 사용 MenuBar 클래스 : 하나이상의 Menu 객체를 포함한 주메뉴를 작성할 수 기능을 제공 Menu : 하나이상의 MenuItem 객체를 포함하여 하나의 풀다운 메뉴를 작성할 수 있는 기능을 제공 MenuItem : 메뉴리스트의 각 항목을 제공하기 위해 사용 CheckboxMenuItem : 체크 박스 메뉴리스트를 제공하기 위해 사용

18.15 메뉴의 사용 MenuBar 클래스 : 하나이상의 Menu 객체를 포함한 주메뉴를 작성할 수 기능을 제공 생성자 메소드 Menu add(Menu m) MenuBar에 메뉴를 추가. m은 MenuBar에 추가될 Menu 객체이며, 이 메소드는 Menu 객체를 MenuBar에 추가하고 추가된 Menu 객체를 반환

18.15 메뉴의 사용 Menu 클래스 : 하나이상의 MenuItem 객체를 포함하여 하나의 풀다운 메뉴를 작성할 수 있는 기능을 제공 생성자 Menu() Menu(String menutitle) menutitle : MenuBar에 나타낼 대표 메뉴 이름 메소드 MenuItem add(MenuItem mi) 메뉴에 mi로 지정된 MenuItem 객체를 추가 하고 추가된 항목을 MenuItem 객체로 반환 void add(String menuitem) 메뉴에 menuitem으로 지정된 문자열을 추가

18.15 메뉴의 사용 MenuItem 클래스 : 메뉴리스트의 각 항목을 제공하기 위해 사용 생성자 MenuItem(String str) str : 메뉴의 항목으로 나타낼 문자열 관련 이벤트 : 사용자가 메뉴의 항목을 선택하면 action 이벤트가 발생 메소드 void addActionListener(ActionListener al) 리스너를 등록 void removeActionListener(ActionListener al) 리스너를 해제 void setEnabled(boolean flag) flag가 true이면 현재의 메뉴 항목을 선택 상태로 설정

18.15 메뉴의 사용 CheckboxMenuItem 클래스 : 체크박스 메뉴 항목을 제공 생성자 CheckboxMenuItem(String str) CheckboxMenuItem(String str, boolean flag) str : 메뉴 항목으로 나타낼 문자열 flag : 나타낼 메뉴의 상태를 지정. flag가 true이면 선택된 상태로 나타 나고, false이면 선택되지 않은 상태로 나타난다 관련 이벤트 : item 이벤트를 발생 메소드 void addItemListener(ItemListener il) 리스너를 등록 void removeItemListener(ItemListener il) 리스너를 해제 boolean getState() 메뉴의 선택 상태를 반환 void setState(boolean flag) 메뉴의 선택 상태를 flag로 지정

18.15 메뉴의 사용 프레임 윈도우에 메뉴를 생성하는 과정 1) MenuBar 객체를 생성 2) 생성된 MenuBar 객체를 setMenuBar() 메소드([표 18-12] 참조)를 사용하여 프레임 윈도우에 추가 3) Menu 객체를 생성 4) add() 메소드를 이용하여 MenuBar에 Menu 객체를 추가 5) MenuItem 또는 CheckboxMenuItem 객체를 생성 6) add() 메소드를 이용하여 생성된 메뉴 항목 객체를 Menu에 추가 7) 각각의 항목에 적합한 리스너를 등록하고 이벤트를 처리

18.15 메뉴의 사용 예