Part 5 사용자 인터페이스 Chapter 14 : 그래피컬 사용자 인터페이스 Chapter 15 : 이벤트 처리

Slides:



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

12 장 자바 애플릿. 2 Applet 개요 Applet 프로그램 – 웹 페이지에 포함되어 구동 된다. 웹 브라우저나 애 플릿뷰어 (appletviewer) 에서 실행되는 프로그램 – 웹 브라우저 내에 Applet 을 해석하여 실행할 수 있 도록 Applet 구동용 인터프리터가.
자바 5.0 프로그래밍.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Chap12 그래피컬 사용자 인터페이스(GUI)
제 4 부 : 애플릿과 사용자 인터페이스 제 16 장 애플릿과 그래픽 제 17 장 이벤트 처리 제 18 장 사용자 인터페이스 : AWT 제 19 장 사용자 인터페이스 : SWING.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
- 계산기 GUI 구성하기 - 조원: 박강국 오정은 이귀식 김도윤 안영진.
9장. 스윙 프로그래밍.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
최윤정 Java 프로그래밍 클래스 상속 최윤정
컴퓨터 프로그래밍 실습 #7 제 4 장 GUI 클래스 작성.
명품 JAVA Programming.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
Kim heesang JDBC Programming 2 Kim heesang
제 4 장 클래스 작성 Lab 4- 2.
9장 AWT(1).
Lesson 12. 사용자 인터페이스(AWT) - 1
Lesson 11. 이벤트.
Java의 정석 제 13 장 AWT와 애플릿 Java 정석 남궁성 강의
Power Java 제19장 배치 관리자(Layout Manager).
명품 JAVA Programming 제 12 장 그래픽.
제 4 부 제 16 장 애플릿과 그래픽 제 17 장 이벤트 처리 제 18 장 사용자 안터페이스.
Chapter 13 GUI 프로그래밍 01 GUI 화면 구성 02 GUI 이벤트 처리 03 GUI 메뉴와 툴바 예제 모음 요약
어서와 Java는 처음이지! 제8장 그래픽 사용자 인터페이스.
Choi Younghwan CSE HUFS
18장 사용자 인터페이스 18.1 AWT(Abstract Window Toolkit) 18.2 컴포넌트의 이벤트 처리
19장 스윙과 이벤트 처리 Section 1 스윙 컴포넌트 Section 2 이미지 아이콘과 라벨
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Lesson 9. 예외처리.
9장 AWT(1).
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
JAVA WINDOW PROGRAMMING
자바 5.0 프로그래밍.
Power Java 제14장 배치 관리자.
Lesson 10. 애플릿과 그래픽.
그래픽 사용자 인터페이스와 사건처리.
자바 5.0 프로그래밍.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
7장 인터페이스와 추상 클래스.
JAVA Canvas Swing.
Method & library.
JA A V W. 03.
자바응용.
Chapter03 캔버스(1) HTML5 Programming.
10장 tkinter로 GUI 만들기.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
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 : 패키지와 주요 클래스
자바 5.0 프로그래밍.
Power Java 제11장 상속.
JA A V W. 06.
Mariadb JDBC PROGRAMMING2
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
9 브라우저 객체 모델.
Power Java 제14장 배치 관리자.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
7 생성자 함수.
6 객체.
Presentation transcript:

Part 5 사용자 인터페이스 Chapter 14 : 그래피컬 사용자 인터페이스 Chapter 15 : 이벤트 처리 5부에서는 자바의 사용자 인터페이스에 관해 기술하였다. 14장에서는 GUI 작성을 위한 컴포넌트 생성 방법과 다양한 그래픽 기능을 설명하였다. 15장에서는 GUI에서 발생하는 이벤트 처리를 위한 절차와 방법들을 자세하게 설명하고 있다. 16장에서는 스윙 컴포넌트를 사용한 GUI 구축과 이벤트 처리방법에 관해 기술하고 있다.

그래피컬 사용자 인터페이스 CHAPTER 14 Section 1 AWT와 스윙(Swing) Section 3 프레임(Frame) Section 4 배치관리자(Layout Manager) Section 5 패널(Panel) Section 6 패널에서의 그래픽 사용 Section 7 색의 사용 Section 8 글꼴(Font)의 사용

GUI(Graphical User Interface) Section 1 AWT와 Swing GUI(Graphical User Interface) 응용 프로그램이나 웹에서 사용자가 접속하는 부분 자바는 GUI를 두 가지 형태로 제공 AWT Swing

Section 1 AWT와 Swing GUI : AWT 프로그램이 실제 실행되는 컴퓨터(운영체제)에서 제공되는 그래픽 컴포넌트(native peer)를 이용하여 그래픽을 나타낸다 중량(heavyweight) 컴포넌트 실행되는 시스템에 따라 다른 모양을 나타낸다

SWING 실행되는 시스템과 무관하게 대부분의 그래픽을 자바 시스템(JVM)이 처리하여 나타낸다 Section 1 AWT와 Swing SWING 실행되는 시스템과 무관하게 대부분의 그래픽을 자바 시스템(JVM)이 처리하여 나타낸다 경량(lightweight) 컴포넌트 시스템에 상관없이 일관된 모양을 나타낸다 AWT에 비해 실행시간과 메모리가 많이 요구된다

Section 1 AWT와 Swing AWT 패키지와 Swing 패키지

java.awt 패키지 Section 2 AWT 패키지와 주요 클래스 유형구분 클래스명 컴포넌트의 배치와 관련된 클래스 BorderLayout, FlowLayout, GridLayout, GridBagLayout, GridBagConstraints, CardLayout GUI 구성과 관련된 클래스 Button, Label, Canvas, Checkbox, Choice, Scrollbar, ComponentList, 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

Component 클래스 GUI 관련 클래스의 최상위 클래스 Section 2 AWT 패키지와 주요 클래스 Component 클래스 GUI 관련 클래스의 최상위 클래스 대부분의 GUI 클래스들이 Component 클래스의 하위 클래스이다 Component 클래스는 약 100여 개의 메소드를 제공

Component 클래스의 주요 메소드 Section 2 AWT 패키지와 주요 클래스 메소드 이름 설명 Image createImage(int width, int height) width, height 크기의 Image 객체를 생성하여 반환 Font getFont() 현재 설정된 폰트를 폰트 객체로 반환 FontMetrics getFontMetrics(Font font) font 폰트에 관한 FontMetrics 객체를 반환 Color getForeground() 전경색(foreground)을 Color 객체로 반환 Dimension getSize() 현재 컴포넌트의 크기를 Dimension 객체로 반환 void paint(Graphics g) 현재의 컴포넌트에 Graphics 객체 g를 이용하여 그림을 그리는 메소드 void repaint() JVM에게 update() 메소드 호출을 요청한다 void setBackground(Color c) 배경색을 c로 설정 void setFont(Font f) 폰트를 f로 설정 void setForeground(Color c) 전경색을 c로 설정 public void update(Graphics g) 컴포넌트를 배경색으로 채우고 paint() 메소드를 호출한다

Container 클래스 컴포넌트를 담는 그릇 역할을 하는 클래스 Section 2 AWT 패키지와 주요 클래스 Container 클래스 컴포넌트를 담는 그릇 역할을 하는 클래스 JFrame, JPanel, Japplet, Applet 등의 하위 클래스를 가지고 있다 컨테이너는 서브(sub) 컨테이너를 가질 수 있다 일반적으로 서브 컨테이너로 JPanel 클래스가 많이 사용된다

Container 클래스의 메소드 Section 2 AWT 패키지와 주요 클래스 메소드 이름 메소드 설명 Component add(Component c) 컴포넌트 c를 현재의 컨테이너에 추가하고 c를 반환 Component add(String name, Component c) 컴포넌트 c를 컨테이너에 추가. name은 컴포넌트가 놓일 방향을 지시하는 문자열 객체 void remove(Component c) 컴포넌트 c를 현재의 컨테이너에서 제거 void setLayout(LayoutManager lm) lm으로 지정된 배치관리자를 현재 컨테이너의 배치관리자로 설정 void addContainerListener(ContainerListener cl) 이벤트를 받아들이기 위한 이벤트 리스너를 등록 void removeContainerListener(ContainerListener cl) 이벤트 리스너의 등록을 해제

GUI를 구축을 위한 프레임 클래스 : JFrame 클래스 Section 3 프레임(Frame) GUI를 구축을 위한 프레임 클래스 : JFrame 클래스 JFrame 클래스는 Component → Container → Window → Frame → JFrame 형태로 상속된 클래스

GUI를 구축을 위한 프레임 클래스 : JFrame 클래스 Section 3 프레임(Frame) GUI를 구축을 위한 프레임 클래스 : JFrame 클래스

GUI를 구축을 위한 프레임 클래스 : JFrame 클래스 Section 3 프레임(Frame) GUI를 구축을 위한 프레임 클래스 : JFrame 클래스

GUI를 구축을 위한 프레임 클래스 : JFrame 클래스 Section 3 프레임(Frame) GUI를 구축을 위한 프레임 클래스 : JFrame 클래스

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

Section 4 배치 관리자(Layout Manager) 배치 관리자 : FlowLayout 배치관리자를 지정하지 않으면 묵시적으로 FlowLayout으로 지정 컴포넌트를 수평 방향으로 배치하는 관리자

Section 4 배치 관리자(Layout Manager) 배치 관리자 : FlowLayout

Section 4 배치 관리자(Layout Manager) 배치 관리자 : BorderLayout 컴포넌트를 추가할 때 방향을 지정하여 추가할 수 있는 기능을 제공. 지정할 수 있는 방향은 East, West, South, North, Center

Section 4 배치 관리자(Layout Manager) 배치 관리자 : BorderLayout

Section 4 배치 관리자(Layout Manager) 배치 관리자 : GridLayout 컴포넌트를 행과 열을 가진 배열로 배치

Section 4 배치 관리자(Layout Manager) 배치 관리자 : GridLayout

패널 : Jpanel 클래스 GUI 구축 시 Container 안에 다시 조그만 쟁반(접시) 역할을 하는 클래스 Section 5 패널(Panel) 패널 : Jpanel 클래스 GUI 구축 시 Container 안에 다시 조그만 쟁반(접시) 역할을 하는 클래스

Section 5 패널(Panel) 패널 : Jpanel 클래스

패널(JPanel 객체)의 역할 다양한 컴포넌트를 배치하는 그릇역할 다양한 그래픽을 나타낼 수 있는 기능도 제공 Section 6 패널에서의 그래픽 사용 패널(JPanel 객체)의 역할 다양한 컴포넌트를 배치하는 그릇역할 다양한 그래픽을 나타낼 수 있는 기능도 제공

패널에 그래픽을 나타내기 위한 프로그램이 작성순서 Section 6 패널에서의 그래픽 사용 패널에 그래픽을 나타내기 위한 프로그램이 작성순서 ① 클래스가 JPanel 클래스로부터 상속 ② 상위 클래스인 JComponent 클래스에서 선언된 paintComponent(Graphics g) 메소드를 반드시 오바라이딩 하여야 한다. ③ paintComponent(Graphics g) 메소드 내에 그래픽 기능을 기술한다(매개 변수로 받은Graphics 객체의 메소드를 이용하여 기술) 위의 과정을 이해하기 위해서는 paintComponent(Graphics g) 메소드 메소드의 매개변수로 사용되는 Graphics 클래스에 관해 알아야 한다

패널에서의 그래픽 사용 : paintComponent(Graphics g) 메소드 Section 6 패널에서의 그래픽 사용 패널에서의 그래픽 사용 : paintComponent(Graphics g) 메소드 paintComponent() 메소드는 상위 클래스인 JComponent 클래스에 선언된 메소드 JVM에 의해 자동으로 실행되는 메소드 패널 객체가 나타날 때마다 JVM은 이 메소드를 자동으로 호출 JVM은 이 메소드를 호출할 때, 해당 패널에 그래픽을 나타낼 수 있는 Graphics 객체를 매개변수로 하여 호출

패널에서의 그래픽 사용 : Graphics 클래스 Section 6 패널에서의 그래픽 사용 패널에서의 그래픽 사용 : Graphics 클래스 java.awt 패키지에 포함된 클래스(java.awt.Graphics) Graphics 클래스는 윈도에 다양한 그래픽을 나타낼 수 있는 많은 메소드를 제공

패널에서의 그래픽 사용 : Graphics 클래스의 주요 메소드 Section 6 패널에서의 그래픽 사용 패널에서의 그래픽 사용 : Graphics 클래스의 주요 메소드 메소드 이름 설명 void drawArc(int x, int y, int w, int h, int startAngle, int endAngle) startAngle과 endAngle로 지정된 각도를 가지는 원호를 그린다 void drawImage(Image img, int x, int y, imageObserver io) img로 지정된 이미지를 애플릿의 x,y좌표에 그린다 viod drawLine(int x0, int y0, int x1, int y1) x0,y0부터 x1,y1까지 라인을 그린다 void drawOval(int x, int y, int w, int h) x,y좌표에 w,h의 폭과 높이를 가진 타원을 그린다 void drawPolygon(int x[], int y[], int n) x[]와 y[] 배열의 각 점을 좌표로 하여 n개의 코너점을 가진 다각형을 그린다 void drawRect(int x, int y, int w, int h) x,y 좌표에 w,h의 폭과 높이를 가진 사각형을 그린다 void drawString(String str, int x, int y) 문자열을 x,y 좌표에 그린다

패널에서의 그래픽 사용 : Graphics 클래스의 주요 메소드 Section 6 패널에서의 그래픽 사용 패널에서의 그래픽 사용 : Graphics 클래스의 주요 메소드 메소드 이름 설명 void fillArc(int x, int y, int w, int h, int startAngle, int endAngle) 속이 찬 원호를 그린다 void fillOval(int x[], int y[], int n) 속이 찬 타원을 그린다 void fillPolygon(int x[], int y[], int n) 속이 찬 다각형을 그린다 void fillRect(int x, int y, int w, int h) 속이 찬 사각형을 그린다 Color getColor() 현재 객체의 색을 Color 객체로 반환 Font getFont() 현재 객체의 폰트를 Font 객체로 반환 FontMetrics getFontMetrics() 현재 객체의 폰트 정보를 FontMetrics 객체로 반환 void setColor(Color color) 현재 객체의 색을 color로 설정

Section 6 패널에서의 그래픽 사용 패널에서의 그래픽 사용

Section 6 패널에서의 그래픽 사용 패널에서의 그래픽 사용

Section 6 패널에서의 그래픽 사용 패널에서의 그래픽 사용

색의 사용 자바는 색에 관한 기능을 가지는 java.awt.Color 클래스를 제공 Section 7 색의 사용 색의 사용 자바는 색에 관한 기능을 가지는 java.awt.Color 클래스를 제공 그래픽 객체에 색을 설정하기 위해서는 Color 객체를 생성한 다음 setColor() 메소드를 사용하여 설정

Section 7 색의 사용 색의 사용 : Color 클래스

색의 사용 : Color 클래스의 주요 메소드 Section 7 색의 사용 메소드 이름 설명 Color brighter() Color darker() 현재 객체의 색보다 한 단계 어두운 색의 Color 객체를 반환 static Color decode(String str) throws NumberFormatException 문자열 str과 동일한 Color 객체를 반환 booleanequals(Object obj) 현재의 객체와 obj로 지정된 객체가 같은 색을 가지면 true, 아니면 false를 반환 int getRed() 현재 객체의 R(red)값을 반환 int getGreen() 현재 객체의 G(green)값을 반환 int getBlue() 현재 객체의 B(blue)값을 반환 int getRGB() 현재 객체의 RGB값을 반환

Section 7 색의 사용 색의 사용 : Color 클래스

Section 7 색의 사용 색의 사용

글꼴의 사용 Graphics 클래스의 setFont(Font font) 메소드를 이용하여 출력할 텍스트의 글꼴을 지정 Section 8 글꼴(Font)의 사용 글꼴의 사용 Graphics 클래스의 setFont(Font font) 메소드를 이용하여 출력할 텍스트의 글꼴을 지정 setFont() 메소드의 매개변수인 Font 클래스의 객체를 이용하여 폰트 지정

Section 8 글꼴(Font)의 사용 글꼴의 사용 : Font 클래스 setFont() 메소드의 매개변수로 사용

Section 8 글꼴(Font)의 사용 글꼴의 사용 : Font 클래스

Section 8 글꼴(Font)의 사용 글꼴의 사용

AWT와 스윙(Swing) ① 응용 프로그램에서 사용자가 접속하는 부분을 GUI라고 한다. Chapter 14 학습정리 AWT와 스윙(Swing) ① 응용 프로그램에서 사용자가 접속하는 부분을 GUI라고 한다. ② 자바 언어는 초기에 AWT라는 GUI 패키지를 제공하였다. 이 클래스들은 그래픽을 실행되는 시스템의 그래픽 컴포넌트를 이용하는 방법을 사용하였기 때문에, 실행되는 시스템에 따라 조금씩 다르게 나타나는 단점이 있다. ③ Swing GUI 패키지는 실행되는 시스템의 그래픽 컴포넌트와는 무관하게 JVM이 모든 그래픽을처리한다. 이 방법은 실행시간이 AWT 방법에 비해 더 소요되지만, 실행되는 시스템에 상관없이 일관된 형태의 GUI를 제공할 수 있는 장점이 있다.

AWT 패키지와 주요 클래스 ① AWT 패키지에는 GUI 구축을 위한 다양한 클래스들을 제공하고 있다. Chapter 14 학습정리 AWT 패키지와 주요 클래스 ① AWT 패키지에는 GUI 구축을 위한 다양한 클래스들을 제공하고 있다. ② Component 클래스는 약 100여 개의 메소드를 제공하는 추상 클래스로서 대부분의 GUI 관련클래스들이 Component 클래스의 하위 클래스이다. ③ Container 클래스는 쟁반 역할을 하는 클래스로서 다른 GUI 컴포넌트들을 쟁반에 담아 나타내는 역할을 수행한다

Chapter 14 학습정리 프레임(Frame)과 배치 관리자 ① 일반적인 응용 프로그램 구축 시 GUI 부분을 작성하기 위해 프레임을 사용한다. 자바는 JFrame 클래스를 제공한다. ② 자바는 쟁반 역할을 하는 클래스로 Container 클래스와 JPanel 클래스를 제공하고 있다. 일반적으로 프레임에 하나의 Container 클래스 객체를 배정하고, 하나의 Container 클래스 객체에는 다수 개의 JPanel 객체를 배정한다. ③ 자바는 쟁반 클래스에 객체를 배치하기 위해 배치관리자를 클래스로 제공하고 있다. 자바는 배치관리자의 특성에 따라 FlowLayout, BorderLayout, GridLayout 클래스를 제공하고 있다.

Chapter 14 학습정리 그래픽의 사용 ① 패널 객체에는 다양한 그래픽을 표현할 수 있다. 일반적으로 패널 객체에 그래픽을 나타내기위해서는 paintComponent(Graphics g) 메소드를 이용한다. 이 메소는 패널 객체가 생성될 때자동으로 호출되는 메소드이다. ② paintComponent(Graphics g) 메소드의 매개변수로 지정된 Graphics 클래스의 객체를 이용하여패널에 그래픽을 출력한다. ③ 컬러와 폰트를 설정하여 도형과 문자열의 출력이 가능하다..