자바 - 애플릿 기초
안녕하세요, 자바 개발자 지망생 여러분! 자바 애플릿의 세계로 여러분과 함께 흥미로운 여정을 시작하게 되어 기쁩니다. 10년 이상 프로그래밍을 가르쳐온 사람으로서, 앞으로의 길이 어려워 보일 수 있지만, 정말로 보람이 있을 것이라 확신합니다. 그럼 손을 dirt고 바로 시작해보겠습니다!
자바 애플릿이란?
코딩을 시작하기 전에, 애플릿이 무엇인지 이해해 보겠습니다. 애플릿은 웹 페이지에 삽입할 수 있는 작은 자바 프로그램입니다. 브라우저 내에서 실행되는 미니어플리케이션처럼, 정적인 HTML 페이지에 상호작용과 동적인 콘텐츠를 더해줍니다.
자바 애플릿의 수명 주기
모든 애플릿은 수명 동안 여러 단계를 거칩니다. 이 수명 주기를 이해하는 것은 효과적인 애플릿을 개발하는 데 필수적입니다. 다음과 같이 나눕니다:
- 초기화
- 시작
- 실행
- 중지
- 소멸
자바 애플릿 수명 주기 흐름
이 흐름을 더 잘 이해하기 위해, 각 단계에서 호출되는 메서드를 나열한 표를 보겠습니다:
단계 | 호출된 메서드 |
---|---|
초기화 | 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);
}
}
이를 다음과 같이 설명할 수 있습니다:
-
java.applet
과java.awt
패키지에서 필요한 클래스를 임포트합니다. -
HelloWorldApplet
클래스는Applet
클래스를 확장합니다. -
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