자바 - 애플릿 기초

안녕하세요, 자바 개발자 지망생 여러분! 자바 애플릿의 세계로 여러분과 함께 흥미로운 여정을 시작하게 되어 기쁩니다. 10년 이상 프로그래밍을 가르쳐온 사람으로서, 앞으로의 길이 어려워 보일 수 있지만, 정말로 보람이 있을 것이라 확신합니다. 그럼 손을 dirt고 바로 시작해보겠습니다!

Java - Applet Basics

자바 애플릿이란?

코딩을 시작하기 전에, 애플릿이 무엇인지 이해해 보겠습니다. 애플릿은 웹 페이지에 삽입할 수 있는 작은 자바 프로그램입니다. 브라우저 내에서 실행되는 미니어플리케이션처럼, 정적인 HTML 페이지에 상호작용과 동적인 콘텐츠를 더해줍니다.

자바 애플릿의 수명 주기

모든 애플릿은 수명 동안 여러 단계를 거칩니다. 이 수명 주기를 이해하는 것은 효과적인 애플릿을 개발하는 데 필수적입니다. 다음과 같이 나눕니다:

  1. 초기화
  2. 시작
  3. 실행
  4. 중지
  5. 소멸

자바 애플릿 수명 주기 흐름

이 흐름을 더 잘 이해하기 위해, 각 단계에서 호출되는 메서드를 나열한 표를 보겠습니다:

단계 호출된 메서드
초기화 init()
시작 start()
실행 paint()
중지 stop()
소멸 destroy()

이제 각 단계에 대해 코드 예제와 함께 더 깊이 알아보겠습니다.

간단한 자바 애플릿 "Hello, World"

classical "Hello, World" 예제로 시작해보겠습니다. 이를 통해 애플릿의 기본 구조를 이해할 수 있습니다.

import java.applet.Applet;
import java.awt.Graphics;

public class HelloWorldApplet extends Applet {
public void paint(Graphics g) {
g.drawString("Hello, World!", 50, 25);
}
}

이를 다음과 같이 설명할 수 있습니다:

  1. java.appletjava.awt 패키지에서 필요한 클래스를 임포트합니다.
  2. HelloWorldApplet 클래스는 Applet 클래스를 확장합니다.
  3. paint 메서드를 오버라이드하여 "Hello, World!" 메시지를 그립니다.

애플릿 클래스

Applet 클래스는 모든 애플릿의 슈퍼클래스입니다. 애플릿 실행을 위한 프레임워크를 제공하며, 초기화, 시작, 중지, 소멸 메서드를 포함합니다. 더 포괄적인 예제를 보겠습니다:

import java.applet.Applet;
import java.awt.Graphics;

public class LifeCycleApplet extends Applet {
String message = "";

public void init() {
message += "초기화... ";
}

public void start() {
message += "시작... ";
}

public void stop() {
message += "중지... ";
}

public void destroy() {
message += "소멸... ";
}

public void paint(Graphics g) {
g.drawString(message, 20, 20);
}
}

이 애플릿은 모든 수명 주기 메서드를 보여줍니다. 각 메서드는 message 문자열에 추가되며, 이는 paint 메서드에서 표시됩니다.

애플릿 호출

애플릿을 실행하려면 HTML 페이지에 삽입해야 합니다. 다음과 같이 할 수 있습니다:

<html>
<body>
<applet code="LifeCycleApplet.class" width="300" height="100">
Your browser does not support the <code>applet</code> tag.
</applet>
</body>
</html>

애플릿 매개변수 가져오기

애플릿은 HTML 페이지에서 매개변수를 받을 수 있습니다. 이는 애플릿의 동작을 더 유연하게 만듭니다. 다음을 보겠습니다:

import java.applet.Applet;
import java.awt.Graphics;

public class ParameterApplet extends Applet {
public void paint(Graphics g) {
String name = getParameter("name");
g.drawString("안녕하세요, " + name + "!", 50, 25);
}
}

그리고 HTML에서는 다음과 같이 합니다:

<applet code="ParameterApplet.class" width="300" height="100">
<param name="name" value="Alice">
</applet>

이벤트 처리

애플릿은 사용자 상호작용에 응답할 수 있습니다. 간단한 버튼 클릭 애플릿을 만들어보겠습니다:

import java.applet.Applet;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ButtonApplet extends Applet implements ActionListener {
Button b;
String message = "";

public void init() {
b = new Button("Click me!");
add(b);
b.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
message = "버튼 클릭됨!";
repaint();
}

public void paint(Graphics g) {
g.drawString(message, 50, 50);
}
}

이 애플릿은 버튼을 생성하고 클릭 시 메시지를 업데이트합니다.

이미지 표시

애플릿은 이미지를 표시할 수도 있습니다. 간단한 예제를 보겠습니다:

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;

public class ImageApplet extends Applet {
Image img;

public void init() {
img = getImage(getDocumentBase(), "myimage.jpg");
}

public void paint(Graphics g) {
g.drawImage(img, 0, 0, this);
}
}

이 애플릿은 HTML 파일과 같은 디렉토리에 있는 이미지를 로드하고 표시합니다.

오디오 재생

마지막으로, 애플릿이 오디오를 재생하는 방법을 살펴보겠습니다:

import java.applet.Applet;
import java.applet.AudioClip;

public class AudioApplet extends Applet {
AudioClip clip;

public void init() {
clip = getAudioClip(getCodeBase(), "mysound.au");
}

public void start() {
clip.play();
}

public void stop() {
clip.stop();
}
}

이 애플릿은 오디오 파일을 로드하고 애플릿이 시작될 때 재생하며, 중지될 때 정지합니다.

그렇게 해서, 여러분! 자바 애플릿의 기초를 다루었습니다. 수명 주기에서 이벤트 처리, 이미지 표시, 오디오 재생까지. 연습이 완벽함을 기억하며, 이 예제들을 실험하고 자신의 애플릿을 만들어보세요. 행복한 코딩을 기원합니다!

Credits: Image by storyset