2013년 9월 12일 목요일

Java Applet 간단 설명

1. HelloApplet만들기

  • HTML문서가 반드시 있어야 한다.
  • 항상 public class로 선언되어야 한다.
  • java.applet.Applet 을 상속해야 한다.
  • paint()메소들 추가한다.
  • 초기화 메소드로 init()을 제공한다.==> 애플릿에서 가장 먼저 호출되는 메소드임.
    (application에서 생성자에서 행했던 일은 한다.
    ex)배경색지정, 이벤트처리 객체 등록
  • repaint() 메소드 : AWT에서 컴포넌트를 다시 그리도록 요청한다.==> paint()을 호출한다.
  • 애플릿은 반드시 HTML문서를 사용하여 실행한다.
    <applet></applet>
    실행 : appletviewer ****.html

2. 웝 브라우저와 애플릿의 기본 메소드

메소드  원형
설명
public void init()
애플릿을 초기화 한다. 애플릿이 처음 시스템에 적재될 때 한 번만 브라우저에 의해서 자동으로 호출된다.애플릿에 사용되는 여러 가지 초기화를 수행하기에 좋은 메소드 이다.
public void start()
애플릿이 시작될 때 호출된다. init()메소드가 호출된 후에 호출되며 ,브라우저가 애플릿이 포함되어 있는 문서를 방문할 때마다 호출된다. 따라서 웝 페이지 방문할 때 마다 수행해야 할일들을 이 메소드 안에서 시작시켰다가 stop()메소드에서 중지시키면된다.
public void stop()
애플릿 실행을 중지할 때 호출한다. 웹 브라우저가 애플릿이 있는 페이지에서 다른 페이지로 이동 할 때 그리고 destory()메소드가 호출되기 직전에도 호출된다. 웹페이지를 벗어날 때마다 중지시킬 일들을 이 메소드에서 수행한다.
public void destory()
애플릿을 위해 할당했던 리소스를 환수해야 할 때 브라우저에 의해 호출 된다. 애플릿이 열였던 리소스들을 청소한다. 이 메소드가 호출되기 직전에 항상 stop() 메소드가 호출된다.

# 브라우저가 웝 페이지를 호출할때 메소드의 수행과정
  1. URL을 입력하여 HTML문서를 요청한다.
  2. HTML문서를 읽고 applet태그를 찾는다.
  3. applet태그를 발견 하면 태그에서 지정한 applet byte code를 읽는다.(class file)
  4. 애플릿을 브라우저의 JVM에 넘긴다.
  5. 안전성을 검사한다. JVM은 class를 메모리에 적재한다.
  6. 브라우저가 init()을 실행한다.
    Applet클래스의 init(),start(),stop(),destory()은 아무런 일도 수행하지 않는다.
  7. 브라우저는 Html문서를 번역하여 display하기 시작한다.그 다음 브라우저는 start()메소드 실행함.
  8. 다른 사이트로 이동하면 stop()를 실행한다. 모든 활성화된 쓰레드를 중지시키는 일을 한다.
  9. stop()이 종료한 후에 브라우저에 필요에 따라 destory()메소드를 호출함으로써 브라우저의 실행 환경에게 애플릿이 종료할 것을 요청한다.

3. HTML문서와 <APPLET> tag

⑴ <APPLET> tag
  • <PARAM NAME ="HELLO" VALUE="JAVA APPLET"> tag을(여러 개) 가질수 있다.
    • <PARAM>tag이 외에는 tag와 text는 모두 무시 하게 된다.
    • NAME 속성은 대소문자를 구분 하지 않는다.public String getParameter(String "HELLO");
      String = "JAVA APPLET";
⑵ <APPLET> tag의 속성
속성이름
설명
CODE
애플릿 클래스 파일 이름을 지정한다.(필수 속성)
직렬화된 applet을 사용할 경우 CODE속성 대신에 OBJECT속성을 사용함
WIDTH, HEIGHT
HTML문서안에서 차지할 애플릿의 폭와 넓이를 픽셀단위로 지정.(필수 속성)
CODEBASE
애플릿 클래스 파일과 문서 위치가 틀린 경우 클래스 파일 위치를 URL로 입력한다.
ARCHIVE
애플릿 클래스 파일이 압축 파일 일 때 지정, 여러개 일 때 "," 을 사용.
OBJECT
직렬화된 화일 ".ser"일 때 브라우저는 init()을 실 행하지 않고 start()을 실행 한다.
NAME
브라우저에서 applet을 식별하기 위해서 사용
ALIGN
텍스트와 정렬 시키기 위해서
ALT
<IMG>와 동일한 속성
VSPACE,HSPACE
<IMG>와 동일한 속성

4. 애플릿 보안

자바 보안 시스템에 따른 일반적인 애플릿의 금지 행위
  • 라이브러리를 적재하거난 Native 메소드를 사용
  • 애플릿 실행 컴퓨터의 파일을 읽거나 쓰기
  • 애플릿 바이트코드가 있는 호스트 이외의 호스트와의 네트워크 접속
  • 애플릿 실행 컴퓨터와 다른 프로그램 실행
  • 시스템 등록 정보(일부만 가능함)

5. 이미지와 오디오 사용하기

Image getImage(URL url); //여기서 url은 절대 경로
Image getImage(URL url,String name); //url은 절대 경로, name 상대경로를 사용
AudioClip getAudioClip(URL url);
AudioClip getAudioClip(URL url,String name);
public void play();
public void loop();
public void stop();

댓글 없음: