12 장 자바 애플릿
2 Applet 개요 Applet 프로그램 – 웹 페이지에 포함되어 구동 된다. 웹 브라우저나 애 플릿뷰어 (appletviewer) 에서 실행되는 프로그램 – 웹 브라우저 내에 Applet 을 해석하여 실행할 수 있 도록 Applet 구동용 인터프리터가 내장되어야 한 다. –Applet 프로그램이 되려면, java.applet 패키지의 Applet 클래스로부터 상속 받아 작성되어야 한다. –Applet 을 웹 페이지 내에 포함시키기 위해서 태그를 사용한다.
3 Applet 의 특성 제약사항 – 애플릿이 작동되는 클라이언트의 파일을 읽거나 쓸 수 없다. 애플릿 파일이 존재했던 서버에 데이터 생성은 가능 완전한 URL 이 존재하는 파일 읽기는 가능 – 클라이언트의 프로그램을 실행할 수 없다. – 클라이언트의 시스템 설정 사항을 읽을 수 없다. – 현재의 클라이언트 서버 이외의 망접속은 불가능하 다. 애플릿 파일이 존재했던 서버상의 애플리케이션과 함께 작 동했을 경우 가능
4 태그 사용 <APPLETcode = "Calculator.class" width = "200" height = "210">
5 서버 클라이언트 브라우저에서 Applet 실행 Applet 포함된 페이지 요청 Applet 포함된 페이지와 Applet 클래스 다운로드 HTMLApplet 애플릿 구동 과정
6 Applet 클래스 클래스 계층도를 살펴보면, 컨테이너인 Panel 클래스를 상속 받았음을 알 수 있다. – 따라서 각종 컴포넌트 (button, checkbox 등 ) 를 담을 수 있는 그릇 역할을 한다. – 또한 Frame 과 같은 클래스 내에 포함될 수 있 겠다.
7 예제 import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint(Graphics g ) { g.drawString("Hello World~~", 20, 20); } HelloWorld.java applettest.html
8 WIDTH HEIGHT 시작점 WIDTH=100 HEIGHT=80 WIDTH=150 HEIGHT=40
9 Applet 실행 주기 stop( ) destroy( ) start( ) init( ) 시작 종료 paint( ) 다시 시작 잠깐 멈춤 paint( ) 메소드 – 애플릿에 그래픽 요소들을 그리기 위한 메소드 –start() 혹은 init() 메소드에 의해 자동으로 호출됨
10 애플릿 프로그램에는 반드시 init(), start(), paint(Graphics g) 메서드 중 하나 이상 포함되어야 한다. –init() : 애플릿을 초기화하기 위해 사용됨. 애플릿 생성시 자동으 로 호출되므로 임의로 이 함수를 호출할 필요는 없다. –start() : 초기화가 끝난 애플릿을 화면에 보여주는 역할을 하는 메소드로써 init() 메소드와 마찬가지로 애플릿 생성시 자동 호출 된다. 또한 애플릿 페이지에서 다른 페이지로 갔다가 다시 애플 릿 페이지로 돌아왔을 때 또한 자동으로 start() 메소드가 수행된 다. –paint(Graphics g) : 애플릿에 글을 쓰거나 사각형을 그리고자 할 때 이 메서드에 해당 내용을 작성하게 된다. –stop() : 애플릿 페이지에서 다른 페이지로 넘어가거나 브라우저 가 아이콘화 되었을 때 자동으로 실행된다. –destory() : 애플릿이 완전히 종료되었을 때 자동으로 실행된다. 이 메서드가 호출되면, 해당 애플릿이 이용했던 자원들을 해제한 다.
11 import java.applet.Applet; import java.awt.Graphics; public class AppletExam extends Applet { String temp = ""; public void init() { temp += "init() 수행 "; } public void start() { temp += "start() 수행 "; } public void stop() { temp += "stop() 수행 "; } public void destroy() { System.out.println(" 애플릿 종료 "); } public void paint(Graphics g) { g.drawString(" 애플릿 생명주기 ",30,30); g.drawString(temp, 10, 50); }
12 태그 애플릿을 HTML 페이지에 포함하기 위한 tag 과 태그 쌍을 사용 태그 속성 - CODE 속성 : 애플릿의 메인 클래스 파일 이름. - CODEBASE 속성 : 애플릿 클래스가 위치한 디렉토리 (CODEBASE 가 지정되지 않았을 경우 현재 HTML 문서가 위치한 디렉토리에서 클 래스 파일을 검색 ). - WIDTH 속성 : 애플릿이 실행될 영역의 너비 - HEIGHT 속성 : 애플릿이 실행될 영역의 높이 - NAME 속성 : 애플릿간의 통신을 할 때 사용할 애플릿의 이름 - PARAM NAME 과 VALUE : 애플릿에 넘겨줄 데이터를 지정. 애플릿 프로그램에서 getParameter() 메소드를 이용하여 이 데이터 값을 이용
13 태그 예제
14 import java.awt.*; import java.applet.*; public class Appletex extends Applet { String styleName, printName, error; public void start() { styleName = getParameter("sName"); printName = getParameter("pName"); } public void paint(Graphics g) { Font fontName = new Font(styleName, Font.BOLD, 20); g.setFont(fontName); g.drawString(printName,10,100); }
15 import java.applet.*; import java.awt.*; public class ImageExam extends Applet { Image image; public void init() { image = getImage(getDocumentBase(), "image.jpg"); } public void paint(Graphics g) { g.drawImage(image, 0, 0, this); }
16
17
18 기말고사 범위 –7 장 인터페이스와 추상 클래스 –8 장 자바 입출력 –9 장 AWT(1) –10 장 AWT(2) – 예제 –12 장 자바 애플릿 기말고사 일시 – 월요일반 : 12 월 17 일 ( 월 ) 10 시 – 수요일반 : 12 월 14 일 ( 금 ) 2 시