2008. 9. 9. 15:26

Part 7. Applet과 스레드 I - Applet

애플릿(Applet)이란?
보통 애플리케이션은 main 함수가 꼭 포함되어 있지만
자바 애플릿은 HTML 페이지에 포함되어 웹 브라우저에 의해 실행되는 자바 프로그램입니다.

애플릿은 Applet 클래스를 상속 받아야 합니다.
import java.applet.Applet;
주의 사항 : 애플릿을 상속받는 클래스는 public로 선언되어야 웹 브라우져에서 실행이 가능합니다.
ex : public class AppletTest extends Applet{}

애플릿의 주기
위에서 보셨듯 애플리케이션은 main 메서드를 시작점으로 하지만 애플릿은 main 메서드를 제공하지 않으므로 5가지의 메서드가 웹 브라우저의 상태에 따라 호출됩니다.

메소드

설명

init()

애플릿이 웹 브라우저에 로드될 때 호출

start()

해당 페이지를 사용자가 잠시 떠났다가 다시 돌아왔을 때마다 실행

paint()

애플릿 화면을 다시 그려야 하는 경우에 호출

stop()

페이지를 떠날 때 호출

destroy()

웹 브라우저를 종료하게 되면 호출

메서드의 실행결과를 애플릿 프로그램을 실행중인 웹 브라우저에서 살펴보려면
[도구] - [Sun Java 콘솔] 메뉴를 선택하면 됩니다.

사용자 삽입 이미지


repaint() : paint() 메서드가 다시 호출이 되어야 할때 사용하는 메서드로서
repaint() 메서드를 호출하면 paint() 메서드가 웹브라우저에 의해서 자동으로 호출됩니다.

애플릿 이벤트 처리
애플릿에서 마우스와 관련된 이벤트는 MouseEvent(클래스 : MouseAdapter, 인터페이스 : MouseListener)가 있습니다.
아래는 MouseEvent와 관련된 메서드 입니다.

주요 메소드

설명

public void mousePressed(MouseEvent e)

마우스 버튼이 눌렸을 때

public void mouseReleased(MouseEvent e)

마우스 버튼이 눌려졌다가 떼어졌을 때

public void mouseEntered(MouseEvent e)

마우스가 영역 안으로 들어 왔을 때

public void mouseExited(MouseEvent e)

마우스가 영역 밖으로 나갈 때

public void mouseClicked(MouseEvent e)

마우스가 클릭되었을 때

============== 애플릿에서 마우스가 클릭된 위치에 점 출력 ============================
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class AppletExam03 extends Applet{
 int x,y;
 public void init(){
  addMouseListener(new MouseAdapter(){
   public void mouseClicked(MouseEvent e){
    x=e.getX();
    y=e.getY();
    repaint();
   }
  }
  );
 }
 public void start(){
  x=-1; y=-1;
  repaint();
 }
 public void paint(Graphics g){
  if(x!=-1 || y!=-1){
   g.fillOval(x, y, 10, 10);
  }
 }
}
========================== 애플릿 불러오는 html ====================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> Applet fillOval </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

 <BODY>
  <applet code="AppletExam03.class" width="300" height="300"></applet>
 </BODY>
</HTML>
===================================================================================