JAVA WINDOW PROGRAMMING

Slides:



Advertisements
Similar presentations
이벤트 처리  GUI 운영체제는 이벤트 드리븐으로 동작한다.  사용자와 상호 작용하려면 이벤트를 매끄럽게 처리하는 기술이 필요하다.  안드로이드에는 이벤트를 처리하는 다양한 방법이 있다.  팀 작업을 위해 모든 방법을 숙지해야 하며 자바의 고급 문법이 사용된다.
Advertisements

6 장 객체 - 지향 설계 ③. 목차 GUI 레이아웃  전화기 키 패드 전화기 키 패드 전화기 키 패드 모양의 GUI 를 만드는 Telephone.java, TelephonePanel.java 를 완성해 보자.  주석을 참고하여 TelephonePanel.java.
자바 5.0 프로그래밍.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
149개의 실습예제로 배우는 Flash 8.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Chapter 10. AWT 이벤트.
Chap13 이벤트 처리 13.1 : 이벤트란? 13.2 : 자바의 이벤트 모델 13.3 : 이벤트 관련 컴포넌트
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
MIDP UI ps lab 김윤경.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
Part 5 사용자 인터페이스 Chapter 14 : 그래피컬 사용자 인터페이스 Chapter 15 : 이벤트 처리
윤 홍 란 다이알로그(대화상자) 윤 홍 란
Kim heesang JDBC Programming 2 Kim heesang
9장 AWT(1).
Lesson 11. 이벤트.
Power Java 제19장 배치 관리자(Layout Manager).
Chapter 13 GUI 프로그래밍 01 GUI 화면 구성 02 GUI 이벤트 처리 03 GUI 메뉴와 툴바 예제 모음 요약
어서와 Java는 처음이지! 제8장 그래픽 사용자 인터페이스.
Choi Younghwan CSE HUFS
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
9장 AWT(1).
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Power Java 제14장 배치 관리자.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
그래픽 사용자 인터페이스와 사건처리.
자바 5.0 프로그래밍.
[INA470] Java Programming Youn-Hee Han
7장 인터페이스와 추상 클래스.
10장 tkinter로 GUI 만들기.
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
이메일 자동 포워딩 방법 (Outlook/OWA)
홀인원2.0 설치 메뉴얼.
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
CHAP 5. 레이아웃.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
1차시: 낮과 밤이 생기는 원리 지구과학
JAVA WINDOW PROGRAMMING
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
11.어댑터 뷰 제목. 11.어댑터 뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
JA A V W. 06.
빌드 성공.
Mariadb JDBC PROGRAMMING2
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
11. 어댑터뷰 제목. 11. 어댑터뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
단축키 기능 1. 단축키 기능 설명 Alt + R 조회 S 저장 I 삽입 A 추가 D 삭제 P 출력 Q 닫기
Chapter 03 윈도 폼 컨트롤 1.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
2018년 11월 12일 박성진 Web & Internet [09] 레이아웃 P2 2018년 11월 12일 박성진
웹과 모바일 홈페이지의 이해와 제작 폰트_레이아웃
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
Power Java 제14장 배치 관리자.
Presentation transcript:

JAVA WINDOW PROGRAMMING 1st week 2st session 2009.06.25 이수연 (shrt.kim@gmail.com) in Proj.t Narsha (team.narsha@gmail.com)

JAVA AWT? Contents Container (컨테이너) Component (컴포넌트) 자바에서는 윈도우 프로그램을 만들 수 있는 API를 제공한다. 이 API가 모여있는 패키지가 java.awt.*; 패키지이다. Contents Container (컨테이너) Component (컴포넌트) Layout Manager (레이아웃 관리자의 개요 및 종류) Event (이벤트의 개요 및 종류) Listner and Event (리스너와 이벤트) Handling Events (이벤트의 종류별 처리)

3. Layout Manager 컴포넌트 배치 관리자 : 컨테이너 안의 GUI 컴포 넌트들을 정리하여 배치하는 일을 한다. 기본적인 배치 기능을 제공하여 사용자가 GUI 컴포넌트들의 위치를 일일이 제어하지 않아도 된다 각 배치관리자에 대한 클래스는 LayoutManager 인터 페이스를 구현한다 (implements LayoutManager) java.awt에 일반적인 배치관리자 클래스들이, javax.swing에 BoxLayout과 Box 클래스가 정의되어 있 음

3. Layout Manager 1) FlowLayout Manager 가장 기본적인 배치 관리자, 컴포넌트를 행 단위로 배치시키며 행이 가득 차면 다음 행을 채운다. 행에서의 기본 위치는 가운데, 컴포넌트 사이의 기본 간격은 5px FlowLayout의 인스턴스를 생성할 때에 인자를 전달함으로서 기본 정렬 방향(왼쪽, 가운데, 오른쪽) 과 컴포넌트 사이의 간격 을 조정할 수 있다. FlowLayout(RIGHT); // default 설정방향 전달 FlowLayout(FlowLayout.RIGHT, 10, 20); // default 설정방향, 컴포넌트 사이 간격 10px, 행간 간격 20px

3. Layout Manager 1) FlowLayout 예제

2) BorderLayout Manager 컴포넌트를 컨테이너에 5개의 영역 (NORTH, SOUTH, EAST, WEST, CENTER)에 컴포넌트를 배치하기 위한 것 디폴트로 설정된 간격은 0px BorderLayout Manager를 사용할 경우 컴포넌트가 배치될 영역 을 지정하지 않으면 요소들이 나타나지 않게 된다. 이미 다른 컴포넌트가 있는 자리에 또 추가하면, 가장 최근에 추가된 컴포넌트만 나타나게 된다 BorderLayout(); // 컴포넌트간 간격이 0px BorderLayout(10, 20); // 수평간격 10px, 수직간격 20px

3. Layout Manager 2) BorderLayout 예제

2) FlowLayout과 BorderLayout – 각 패널에서 서로 다른 레이아웃 관리자 적용

3. Layout Manager 3) GridLayoutManager GridLayout(); 컴포넌트를 컨테이너 내의 직사각형 격자에 배열한다. (격자 = 바둑판) 디폴트로 설정된 간격은 0px GridLayout(); // 컴포넌트간 간격 없이 한 행에 배열, 간격은 0px GridLayout(int 행수, int 열수); // 행 X 열 개수의 관리자 생성, 간격은 0px GridLayout(int 행수, int 열수, int 수평간격, int 수직간격); // 행 X 열 개수의 관리자, 간격 설정

3. Layout Manager 3) GridLayout 예제

3. Layout Manager 4) BoxLayoutManager 컴포넌트를 한 행 또는 한 열로 배열한다 javax.swing.BoxLayout 클래스를 import 해줘야 함. 행 또는 열이 컴포넌트로 가득 차더라도 다음 행이나 다음 열로 넘어가지 않고, 컴포넌트의 크기를 줄이거나 잘라버려 한 행이 나 한 열을 유지 BoxLayout(Component 컨테이너, int 구분상수) 첫 번째 인수는 컨테이너로서 Frame, Panel, Dialog를 취함 두 번째 인수는 상수로서, 행 배열인 경우 BoxLayout.X_AXIS 열 배열인 경우 BoxLayout.Y_AXIS

3. Layout Manager 4) BoxLayout 예제

3. Layout Manager 1-2. Practice 01 다음과 같은 화면을 구성해 보세요.

1-2. Practice 01 Guideline 3. Layout Manager 프레임 안에 두 개의 패널이 들어가 있는 형태입니다. 프레임의 레이아웃 관리자 : BorderLayout frm.setLayout(new BorderLayout()); … frm.add(panel1); frm.add(panel2); panel.setLayout(new FlowLayout()); … 프레임의 SOUTH에 들어가는 패널의 레이아웃 관리자 : FlowLayout, 가운데 정렬, 여백은 10px, 20px 프레임의 WEST에 들어가는 패널의 레이아웃 관리자 : BoxLayout, 열 정렬, 첫 인자에 해당 패널을 전달해야 합니다.

4. Event 이벤트: 프로그램이 반응하거나 프로그램의 태스크에 영향을 미 치도록 하는 시스템 혹은 사용자의 동작 또는 일(사건)의 발생. 마 우스 버튼 클릭, 마우스 이동, 입출력 동작 등의 완료 등이 있다. 이벤트 청취자 (Event listener) : 이벤트의 발생에 따른 적절 한 처리를 담당하는 모듈. 발생한 이벤트를 수용하는 개체. 이벤트 의 종류에 따라 달리 정의되며, 자바가 인터페이스로 제공 이벤트 소스 : 사용자 혹은 시스템 이벤트를 발생시킨 진원지.

4. Event 1) Event의 종류 각 Event는 클래스 형태 로서 정의되며, 해당되는 이벤트가 발생 할 때 인스턴스 형태로 해당 리스너에 전달된다. ActionEvent : 버튼을 비롯한 몇 가지 컴포넌트에 대해 사용자가 의미있는 행동을 하려는 경우 발생 AdjustmentEvent : 스크롤바 컴포넌트에서 스크롤 값이 변하는 경우 발생 ComponentEvent : 컴포넌트의 크기, 위치 등에 변화가 있는 경 우 발생 FocusEvent : 컴포넌트가 키보드에 입력할 수 있는 포커스를 갖 거나 잃을 경우 발생(커서 깜박임)

4. Event 1) Event의 종류 - continued ContainerEvent : 컨테이너에 컴포넌트가 추가되거나 삭제되는 경우 ItemEvent : 리스트나 체크박스와 같은 컴포넌트에서 항목을 선택하는 경우 발생 KeyEvent : 키보드를 통해 키를 입력하는 경우 발생 MouseEvent : 컴포넌트 위에서 마우스를 클릭하거나, 컴포넌트 영역 안으로 마우스 커서가 들어가거나 나올 때 발생 MouseMotionEvent : 컴포넌트 위에서 마우스를 이동하거나 드래그하 면 발생 TextEvent : 텍스트영역, 텍스트필드 컴포넌트에서 텍스트의 값이 변경 될 떄 발생 WindowEvent : 윈도우가 생성되어 상태가 변하거나 제거될 때 발생

4. Event 2) Component와 Event 각 컴포넌트마다 일어날 수 있는 이벤트에 한계가 있다. 각 컴포넌트가 가질 수 있는 이벤트의 종류를 나타낸 표 (하단)

4. Event 3) Listener Interface 리스너 : 11가지의 각 이벤트의 종류에 대해 발생한 이벤트를 받 아 처리하는데 필요한 변수와 메소드를 갖는 인터페이스를 리스 너라고 함 리스너의 이름은 이벤트 이름 + Listener이다. 예를 들어, ActionEvent의 리스너 인터페이스 : Action + Listener = ActionListener

4. Event 3) 클릭한 버튼의 이름을 출력하는 프로그램

4. Event 3) 클릭한 버튼의 이름을 출력하는 프로그램 (2)

1-2. Practice 02 3. Layout Manager 다음과 같은 화면을 구성해 보세요. 다른 클래스에 정의했을 시 Frame클래스이름.버튼이름.setBackground(Color c); 버튼을 static 변수로 선언해주어야 합니다.

4. Event 4) Adapter Class 인터페이스를 구현하는 클래스에서는 인터페이스의 모든 메소드 를 구현해야만 한다. 여러 개의 메소드를 가진 인터페이스를 구 현할 때 구현하지 않아도 되는 기능까지 구현해야 될 상황이 필 요할 수 있으므로 불편하게 될 수 있다. 이를 개선하여 구현이 불 필요한 메소드들은 미리 공백으로 구현해놓은 클래스가 어댑터 클래스이다. 예를 들어 MouseListener 인터페이스엔 기능에 따라 5개의 메소 드가 선언되어 있다. 그 중 한 기능에 대한 메소드만 구현할 필요 가 있을 때, MouseAdapter를 상속받아 한 메소드만 구현하면 간 편할 것이다.

4. Event 4) Adapter Class 구현하기 (1) 리스너 인터페이스를 구현하는 대신 어댑터 클래스를 상속 받는다. (핸들링 클래스를 따로 만들어주거나, 해당 클래스가 다 른 클래스를 (Frame이라던가) 상속하지 않아야 한다)

4. Event 4) Adapter Class 구현하기 (2) 이미 다른 클래스를 상속받아 어댑터 클래스를 상속할 수 없는 경우, 내부 클래스를 이용한다