Download presentation
Presentation is loading. Please wait.
1
Lesson 애플릿과 그래픽
2
애플릿이란? 자바 애플릿 애플릿(applet)은 컨테이너의 일종이며, 컨테이너는 컴포넌트 또는 다른 컨테이너를 포함할 수 있다. 자바 애플릿(Java Applet)은 웹 브라우저 상에서 실행되는 자바 프로그램이다. 자바 애플릿은 서버에서 클라이언트 쪽으로 전송되어 클라이언트에서 실행된다. 또한 애플릿 프로그램은 main() 메소드를 갖지 않으며, 웹 브라우저나 애플릿 뷰어의 데이터 창에서만 수행되는 제한된 프로그램이다. 애플릿 프로그램이 생성되고 실행이 종료될 때까지 일정한 동작을 반복하는 생명 주기(life cycle)를 가지고 있는 특징이 있다
3
애플릿과 그래픽 자바 애플릿과 그래픽 자바 애플릿과 그래픽 사용자 인터페이스(GUI)
다양한 그래픽 기능은 Graphics 클래스에서 제공된다. Graphics 클래스는 java.awt 패키지에 포함된 java.awt.Graphics이다 이 클래스에는 다양한 그래픽을 애플릿이나 애플리케이션에 표시할 수 있다. 예를 들면, 글꼴, 색깔, 선, 사각형, 원, 원호, 그림 등이다. 자바 애플릿과 그래픽 사용자 인터페이스(GUI) 그래픽사용자인터페이스(GUI: Graphic User Interface)의 기능은 java.awt 패키지에서 제공하고 있다. GUI의 대표적인 예가 AWT이다. AWT의 컴포넌트로는 버튼, 레이블, 체크상자, 초이스, 리스트, 스크롤바, 텍스트 필드, 텍스트 영역, 메뉴 바, 메뉴 아이템 등이 있다.
4
자바 애플릿의 프로그래밍 과정 소스 파일명이 Jv_ap.java, Jv_ap.java.html이라고 하면 자바 애플릿의 프로그래밍 과정은 다음과 같다. (예) 콘솔(MS-DOS) 환경에서 javac Jv_ap.java를 실행하면 Jv_ap.class 파일이 생성된다. ① 자바클래스명 .java ④ 실행결과 (애플릿 뷰어) ⑤ 실행결과 (웹 브라우저) ③ 자바클래스명 .class 자바컴파일러 (javac) 애플릿뷰어 혹은 웹 브라우저 ② 자바클래스명 .html
5
자바 애플릿의 실행시 동작 원리 ① 사용자(클라이언트)는 서버에게 접속하여 HTML 문서를 요청한다.
...... <APPLET CODE = "Jv_ap.class"> </APPLET> </HTML> <<클라이언트>> <<서버>> HTML 문서 바이트 코드 ① ② ③ ④ ① 사용자(클라이언트)는 서버에게 접속하여 HTML 문서를 요청한다. ② 웹서버는 클라이언트에게 HTML 문서를 다운로드한다. ③ 클라이언트는 HTML 문서에 APPLET 태그가 포함되어 있고 웹 브라우저가 자바를 지원한다면, 웹 브라우저는 애플릿을 정의한 자바 코드의 속성 값을 찾고 웹서버에게 바이트 코드를 요청한다. ④ 웹서버는 클라이언트에게 애플릿 바이트 코드를 다운로드한다. ⑤ 클라이언트의 웹 브라우저는 이 바이트 코드를 해석하여 웹 브라우저 내에서 애플릿을 실행시킨다.
6
애플릿 동작과정
7
CGI(Common Gateway Interface)
8
애플릿의 정의 import java.applet.Applet; Applet 패키지 import Applet 클래스 상속
class 애플릿이름 extends Applet 애플릿 헤더 { // 멤버변수 선언 // 메소드 구현 } 애플릿 바디
9
CODE CODEBASE ARCHIVE NAME ALIGN HSPACE VSPACE WIDTH HEIGHT PARAM
HTML문서에서 인수 전달하기 <HTML> <BODY> <APPLET CODE=애플릿이름.class [ CODEBASE=애플릿위치 ARCHIVE=JAR파일이름 NAME=애플릿이름 ALIGN=정렬방식 HSPACE=수평공간크기 VSPACE=수직공간크기 ] WIDTH=가로크기 HEIGHT=세로크기> <PARAM NAME=속성이름 VALUE=속성값> </APPLET> </BODY> </HTML> CODE CODEBASE ARCHIVE NAME ALIGN HSPACE VSPACE WIDTH HEIGHT PARAM
10
애플릿 라이프 사이클 메소드 기능 void init()
애플릿을 초기화한다. 웹 브라우저에 의해서 애플릿이 메모리에 적재될 때 이 메소드가 호출된다. 객체의 생성, 폰트나 이미지 값 등의 초기화 작업을 수행하며 애플릿이 시작될 때 단 한번 수행된다. void start() 애플릿을 시작한다. init() 메소드 호출 후에 이 메소드가 호출되며, 애플릿이 잠시 중지하였다가 다시 재개할 때도 실행된다. 이 메소드는 애플릿이 실행되는 동안에 여러번 실행될 수 있다. void stop() 애플릿을 중단한다. 애플릿이 포함된 웹페이지를 벗어나거나 웹 브라우저가 아이콘화되었을 때 자동으로 호출한다. void destroy() 애플릿을 종료한다. 즉, 애플릿의 자원을 반납한다. void paint(Graphics g) 컴포넌트(Component) 클래스에서 상속 받는 메소드로서 Graphics 객체 g를 이용하여 그림을 그린다. void showStatus(String s) 웹 브라우저의 상태 표시 줄에 s를 표시한다.
11
자바 애플릿 프로그램의 구조 import java.applet.*; import java.awt.*;
public class 클래스명 extends Applet { public void init() { } public void start() { } public void stop() { } public void destroy() { } public void paint(Graphics g) { g.drawString(“ ”); } } <HTML> <APPLET CODE = "클래스명" WIDTH=가로픽셀수 HEIGHT=세로픽셀수 [ CODEBASE = 클래스 기본 URL ] [ ALT = 교체 텍스트 ] [ NAME = 애플릿 인스턴스명 ] [ ALIGN = 정렬 값 ] [ VSPACE = 픽셀 수 ] [ HSPACE = 픽셀 수 ] > [ < PARAM NAME = 파라미터명1 VALUE = 값1> ] </APPLET> </HTML>
12
애플릿 컴파일과 실행 컴파일 실행 javac MyApplet.java 애플릿 프로그램
appletviewer MyApplet.html 애플릿이 연결된 HTML 문서
13
색상 지정 1 : import java.awt.*; 2 : import java.applet.*; 3 :
4 : public class ColorTest extends Applet 5 : { 6 : public void init() 7 : { 8 : setBackground(Color.yellow); 9 : } 10 : 11 : public void paint(Graphics g) 12 : { 13 : g.setColor(Color.blue); 14 : g.drawString("노란색 바탕에 파란색으로 글씨를 씁니다.", 20, 100); 15 : } 16 : }
14
글꼴 지정 Font myFont = new Font("SansSerif", Font.BOLD, 12);
글꼴이름 글꼴형태 글꼴크기 Font myFont = new Font("SansSerif", Font.BOLD, 12); g.setFont(myFont); 그래픽컨텍스트 Font형인수 Font.PLAIN Font.BOLD Font.ITALIC Font.BOLD+Font.ITALIC 자바 표준 글꼴 Serif SansSerif Monospaced
15
문자 출력 1 : import java.awt.*; 2 : import java.applet.*; 3 :
4 : public class StringTest extends Applet 5 : { 6 : char[] myChars= {'프', '로', '그', '래', '밍'}; 7 : byte[] myBytes= {0x4a, 0x41, 0x56, 0x41}; 8 : 9 : public void paint(Graphics g) 10 : { 11 : g.drawString("자바2", 10, 20); 12 : 13 : g.drawChars(myChars, 0, myChars.length, 10, 50); 14 : 15 : g.drawBytes(myBytes, 0, myBytes.length, 10, 80); 16 : } 17 : }
16
선 그리기 g.drawLine(100, 120, 400, 450); x1 y1 x2 y2 (100, 120)
x y x y2 (100, 120) (400,450)
17
사각형 그리기 사각형: drawRect(), fillRect()
둥근 사각형: drawRoundRect(), fillRoundRect() 3차원 사각형: draw3DRect(), fill3DRect() g.drawRect(200, 100, 80, 50); x좌표 y좌표 폭 높이 g.drawRoundRect(200, 100, 80, 50, 60, 40); 모서리폭 모서리높이 (200,100) 80 50
18
타원 그리기 g.drawOval(200, 100, 80, 50); g.fillOval(200, 100, 80, 50);
x좌표 y좌표 폭 높이 g.fillOval(200, 100, 80, 50); (200,100) 50 80
19
부채꼴 그리기 g.drawArc(50, 20, 200, 80, 20, 320); x좌표 y좌표 폭 높이 시작각도 회전각도 g.fillArc(50, 120, 200, 80, 20, 320); 90 180 270 360
20
다각형 그리기 int[] x1= {20, 40, 80, 250, 200}; int[] y1= {100, 50, 10, 50, 90}; g.drawPolygon(x1, y1, ); x좌표배열 y좌표배열 점의수 int[] x2= {20, 40, 80, 250, 200}; int[] y2= {200, 150, 110, 150, 190}; g.fillPolygon(x2, y2, 5);
21
연결선 그리기 int[] x1= {20, 40, 80, 250, 200}; int[] y1= {100, 50, 10, 50, 90}; g.drawPolyline(x1, y1, ); x좌표배열 y좌표배열 점의수
Similar presentations