'2008/09/09'에 해당되는 글 1건
- 2008.09.09 Part 7. Applet과 스레드 I - Applet
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>
===================================================================================