Latest web development tutorials

자바 애플릿 재단

자바 애플릿 재단

애플릿은 자바 프로그램이다. 그것은 일반적으로 Java 지원 웹 브라우저에서 실행됩니다. 이 자바 API를 완벽하게 지원이 있으므로 때문에 애플릿은 완전한 기능을 갖춘 Java 응용 프로그램입니다.

다음은 독립형 Java 응용 프로그램 및 애플릿 프로그램 사이에 중요한 차이점은 다음과 같습니다

  • Java 애플릿 클래스는 클래스 java.applet.Applet의 상속
  • , 애플릿 클래스) (주 정의하지 않기 때문에이 프로그램은 애플릿 main () 메소드를 호출하지 않습니다
  • 애플릿은 HTML 페이지에 내장 될 수 있도록 설계된다.
  • 사용자가 애플릿을 포함하는 HTML 페이지를 열람하면, 애플릿 코드는 사용자의 컴퓨터에 다운로드된다.
  • 애플릿을 보려면 JVM이 필요합니다. JVM은 플러그인 웹 브라우저, 또는 별도의 런타임 환경 일 수있다.
  • JVM 사용자 머신은 애플릿 클래스의 인스턴스를 생성하고, 다양한 방법의 애플릿주기를 호출한다.
  • 애플릿은 엄격한 보안 규칙 웹 브라우저 집행 보안 애플릿이 샌드 박스 보안이라고합니다.
  • 양식 애플릿은 Java 아카이브 (JAR) 파일을 사용할 수있는 다른 클래스를 다운로드해야합니다.

애플릿 라이프 사이클

애플릿 클래스는 작은 프로그램의 개발을위한 프레임 워크에있을 수 있습니다, 네 가지 방법은 당신에게 프레임 워크를 제공합니다 :

  • 초기화 :이 방법의 목적은 애플릿에 필요한 초기화를 제공하는 것입니다. 이 방법은 처리되는 param 태그 애플릿 태그 후라고합니다.
  • 시작 : 브라우저가 자동으로 호출되는 init 메소드를 호출합니다. 사용자가 애플릿이 포함 된 다른 페이지에서 페이지로 리턴 할 때마다 다음 메서드를 호출합니다.
  • 정지 : 사용자가 애플릿을 포함하는 페이지에서 제거 될 때,이 방법은 자동으로 호출된다. 따라서,이 방법은 동일한 애플릿 반복적으로 호출 될 수있다.
  • 파괴 :이 방법은 브라우저를 정상적으로 종료 된 경우에만 호출됩니다. HTML 페이지에서만 유효 후 애플릿을 사용하면 사용자에 안 그래서 때문에 애플릿 미스에게 모든 자원을 포함하는 페이지를 떠난다.
  • 페인트 :이 방법은 바로 시작 () 메소드 다음에 호출, 또는 애플릿은 브라우저가 호출 할 때 다시 그려야 할 필요가있다. 페인트 () 메소드는 실제로있는 java.awt에서 상속.

"안녕하세요, 세계"애플릿 :

다음은 간단한 애플릿 프로그램 HelloWorldApplet.java은 다음과 같습니다

import java.applet.*;
import java.awt.*;
 
public class HelloWorldApplet extends Applet
{
   public void paint (Graphics g)
   {
      g.drawString ("Hello World", 25, 50);
   }
}

이 문은 우리의 애플릿 클래스에 다음 클래스를 가져옵니다

java.applet.Applet.
java.awt.Graphics.

이러한 import 문이 없으면, 자바 컴파일러는 애플릿과 그래픽 클래스를 인식하지 못합니다.


애플릿 클래스

애플릿 클래스 각각 애플릿 서브 클래스 java.applet.Applet의 기본 클래스 정보 및 서비스 브라우저 컨텍스트를 얻기 위해서는, 파생 된 클래스를 호출하는 방법을 제공한다.

이러한 방법은 다음과 같은 작업을 수행 :

  • 애플릿 매개 변수를 가져옵니다
  • 애플릿의 HTML 파일이 들어있는 네트워크 위치를 가져옵니다
  • 네트워크 위치 애플릿 클래스 디렉토리를 가져옵니다
  • 브라우저의 인쇄 상태 정보
  • 사진 가져 오기
  • 오디오 클립을 가져옵니다
  • 오디오 클립을 재생합니다
  • 애플릿의 크기를 조정

또한, 애플릿 클래스는 애플릿 뷰어 또는 브라우저에 대한 정보를 얻을 수있는 애플릿의 실행을 제어하기 위해 인터페이스를 제공한다.

뷰어는 할 수있다 :

  • 요청 애플릿 저자, 버전 및 저작권 정보
  • 요청 설명 매개 변수 식별 애플릿
  • 초기화 애플릿
  • 파괴 애플릿
  • 애플릿을 시작
  • 최종 실행 애플릿

애플릿 클래스는 필요한 경우이 방법의 기본 구현은,이 방법을 재정의 할 수 있습니다.

"안녕하세요, 세계"애플릿 규격에 따라 제조된다. 유일한 방법은 paint 메소드를 오버라이드 (override) 할 수 있습니다.


애플릿 호출

애플릿은 자바 프로그램이다. 그것은 일반적으로 Java 지원 웹 브라우저에서 실행됩니다. 이 자바 API를 완벽하게 지원이 있으므로 때문에 애플릿은 완전한 기능을 갖춘 Java 응용 프로그램입니다.

<애플릿> 태그는 HTML 파일에 포함 된 애플릿 기반이다. 다음은 전화로 "안녕하세요"애플릿 예이다;

<html>
<title>The Hello, World Applet</title>
<hr>
<applet code="HelloWorldApplet.class" width="320" height="120">
If your browser was Java-enabled, a "Hello, World"
message would appear here.
</applet>
<hr>
</html>

참고 : HTML에서 애플릿 메소드 호출에 대한 자세한 내용은 HTML 애플릿 태그를 참조 할 수 있습니다.

속성은 <애플릿> 태그는 실행할 수있는 애플릿 클래스를 지정합니다. 폭과 높이 패널을 실행하는 애플릿의 초기 크기를 지정하기 위해 사용된다. 애플릿을 닫습니다 </ 애플릿> 태그를 사용해야합니다.

애플릿 파라미터들을 수락한다면, 상기 파라미터의 값이 필요 태그 추가 태그는 <애플릿> 사이 </ 애플릿>에 있습니다. 브라우저는 텍스트와 다른 레이블 애플릿 태그를 무시합니다.

자바 브라우저가 <애플릿>와 </ 애플릿>을 실행할 수 없습니다 지원하지 않습니다. 따라서, 라벨 애플릿 표시 아무것도 관계 사이 자바 브라우저의 지원없이 그것을 볼 수있다.

뷰어 나 브라우저는 문서 컴파일 된 자바 코드의 위치를 ​​찾을 수 <애플릿> 코드베이스 속성이 태그를 지정 사용해야하는 문서의 경로를 지정합니다.

다음과 같습니다 :

<applet codebase="http://amrood.com/applets"
code="HelloWorldApplet.class" width="320" height="120">

패키지 대신 기본 패키지, 패키지 코드에 지정되어야 애플릿 경우 여기서 속성 여기서, 예를 들어 :

<applet code="mypackage.subpackage.TestApplet.class"
           width="320" height="120">

애플릿 매개 변수를 가져옵니다

다음의 예에서는, 파일에 지정된 파라미터를 설정하는 애플릿 반응을 사용하는 방법을 보여준다. 애플릿은 검은 색 체크 무늬 패턴과 제 2 색을 보여줍니다.

문서에 애플릿의 매개 변수에 의해 지정된 각 열의 제 2 색 및 크기.

CheckerApplet 내부 초기화에서의 매개 변수 () 메소드를 얻을. 또한 내부의 페인트에서 매개 변수 () 메소드를 얻을 수 있습니다. 그러나, 애플릿에 값을 받기 시작하고 오히려이 모든 시간이 가치를 갱신 할 때보다 설정을 저장, 그래서 편리하고 효율적이다.

애플릿 뷰어 또는 애플릿이 호출 할 때마다 초기화 () 메소드를 실행 브라우저. 애플릿을로드 한 후에, 뷰어는 바로,이 방법의 기본 구현을 재정의 () 메서드 (Applet.init () 아무것도하지 않았다) 초기화를 호출 일부 사용자 지정 초기화 코드를 추가합니다.

Applet.getParameter () 메소드를 얻을 매개 변수 이름 매개 변수 값으로 주어진다. 얻어진 값이 숫자 또는 다른 비 문자 데이터 인 경우 문자열 형식으로 해결해야합니다.

다음의 예는 CheckerApplet.java 개요입니다 :

import java.applet.*;
import java.awt.*;
public class CheckerApplet extends Applet
{
   int squareSize = 50;// 初始化默认大小
   public void init () {}
   private void parseSquareSize (String param) {}
   private Color parseColor (String param) {}
   public void paint (Graphics g) {}
}

여기 CheckerApplet 클래스의 init () 메소드 및 개인 parseSquareSize () 메소드는 다음과 같습니다

public void init ()
{
   String squareSizeParam = getParameter ("squareSize");
   parseSquareSize (squareSizeParam);
   String colorParam = getParameter ("color");
   Color fg = parseColor (colorParam);
   setBackground (Color.black);
   setForeground (fg);
}
private void parseSquareSize (String param)
{
   if (param == null) return;
   try {
      squareSize = Integer.parseInt (param);
   }
   catch (Exception e) {
     // 保留默认值
   }
}

애플릿 호출 parseSquareSize는 (), squareSize 매개 변수를 해결합니다. ,있는 Integer.parseInt ()가 예외를 throw 할 때 매개 변수가 유효하지 않은 경우, 문자열을 정수로 구문 분석 parseSquareSize () 메소드 라이브러리 정수를 호출합니다.에서는 parseInt (),.

따라서, parseSquareSize () 메서드는 예외를 catch하고, 애플릿은 유효하지 않은 입력을 허용 할 수 없습니다.

색상 매개 변수의 애플릿 호출 parseColor () 메소드는 색상 값으로 해결합니다. parseColor () 메소드 파라미터 및 소정의 색 이름의 값과 일치하는 일련의 문자열을 비교 하였다. 당신은 애플릿 작업을하기 위해이 방법을 구현해야합니다.


애플릿 매개 변수를 지정

다음의 예는 CheckerApplet 클래스를 내장하는 HTML 파일입니다. 사용하여 HTML 파일 애플릿 태그 방법은 두 개의 매개 변수를 지정합니다.

<html>
<title>Checkerboard Applet</title>
<hr>
<applet code="CheckerApplet.class" width="480" height="320">
<param name="color" value="blue">
<param name="squaresize" value="30">
</applet>
<hr>
</html>

참고 : 매개 변수 이름은 대소 문자를 구분하지 않습니다.


애플릿에 응용

그래픽 애플리케이션은 자바 애플릿이 매우 간단하여 웹 페이지에 포함 된로 (AWT 어플리케이션 및 사용 된 Java 프로그램을 실행 프로그램의 사용을 의미한다).

다음은 애플릿에 응용 프로그램을 변환하는 몇 가지 단계가 있습니다 :

  • 애플릿 태그 코드와 함께로드 될 수있는 HTML 페이지를 작성한다.
  • JApplet에 서브 클래스를 작성, 수업 공개로 설정되어 있습니다. 그렇지 않으면, 애플릿을로드 할 수 없습니다.
  • main () 메소드의 응용 프로그램을 제거합니다. 응용 프로그램이 브라우저에 표시 할 수 있기 때문에 응용 프로그램 창을위한 프레임 워크를 구성하지 마십시오.
  • 애플릿의 init () 메서드에 초기화 코드, 구성 애플릿 객체는 객체를 인스턴스화은 init () 메서드를 호출하여 브라우저에 표시되지 않습니다 생성자 응용 프로그램 프레임 창.
  • 에는 setSize () 메서드에 대한 호출을 제거 애플릿을 우려, 크기는 너비와 높이 매개 변수에서 HTML 파일에 의해 설정되었습니다.
  • 의 setDefaultCloseOperation () 메서드 호출을 제거합니다. 이 브라우저가 종료로 종료 애플릿은 폐쇄 될 수 없다.
  • 응용 프로그램은 setTitle이라는 () 메소드이 메소드를 호출의 제거를 호출합니다. 애플릿은 제목 표시 줄을 가질 수 없습니다. (물론, 당신은 자신의 이름은 페이지의 HTML 제목 태그를 통해 제공 할 수 있습니다)
  • 는, setVisible (true)를 호출하지 마십시오, 애플릿이 자동으로 표시됩니다.

이벤트 처리

애플릿 클래스는 컨테이너 클래스 이벤트 핸들러 메소드들을 상속 받는다. 컨테이너 클래스는 다음과 같은 여러 가지 방법을 정의한다 : 이벤트의 특정 유형을 처리하는 processKeyEvent를 () 및의 processMouseEvent ()를 호출 processEvent를 모든 이벤트를 캡처하는 방법이있다.

이벤트에 대한 응답으로, 애플릿은 해당 이벤트 핸들러 메서드를 재정의해야합니다.

import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.applet.Applet;
import java.awt.Graphics;
 
public class ExampleEventHandling extends Applet
                             implements MouseListener {
 
    StringBuffer strBuffer;
 
    public void init() {
         addMouseListener(this);
         strBuffer = new StringBuffer();
        addItem("initializing the apple ");
    }
 
    public void start() {
        addItem("starting the applet ");
    }
 
    public void stop() {
        addItem("stopping the applet ");
    }
 
    public void destroy() {
        addItem("unloading the applet");
    }
 
    void addItem(String word) {
        System.out.println(word);
        strBuffer.append(word);
        repaint();
    }
 
    public void paint(Graphics g) {
         //Draw a Rectangle around the applet's display area.
        g.drawRect(0, 0,
                      getWidth() - 1,
                      getHeight() - 1);
 
         //display the string inside the rectangle.
        g.drawString(strBuffer.toString(), 10, 20);
    }
 
  
    public void mouseEntered(MouseEvent event) {
    }
    public void mouseExited(MouseEvent event) {
    }
    public void mousePressed(MouseEvent event) {
    }
    public void mouseReleased(MouseEvent event) {
    }
 
    public void mouseClicked(MouseEvent event) {
         addItem("mouse clicked! ");
    }
}

다음 애플릿을 호출합니다 :

<html>
<title>Event Handling</title>
<hr>
<applet code="ExampleEventHandling.class"
width="300" height="300">
</applet>
<hr>
</html>

대부분 ". 애플릿을 시작. 애플릿을 초기화"실행, 애플릿의 디스플레이를 시작, 그리고 당신이 사각형을 클릭, 그것은 "마우스 클릭"이 표시됩니다.


그림 표시

애플릿은 GIF, JPEG, BMP 등의 이미지 형식을 표시 할 수 있습니다. 애플릿에 사진을 표시하려면, 당신의 drawImage () 메서드 java.awt.Graphics 클래스를 사용해야합니다.

하기 실시 예는 화상을 표시하기위한 모든 단계를 보여 :

import java.applet.*;
import java.awt.*;
import java.net.*;
public class ImageDemo extends Applet
{
  private Image image;
  private AppletContext context;
  public void init()
  {
      context = this.getAppletContext();
      String imageURL = this.getParameter("image");
      if(imageURL == null)
      {
         imageURL = "java.jpg";
      }
      try
      {
         URL url = new URL(this.getDocumentBase(), imageURL);
         image = context.getImage(url);
      }catch(MalformedURLException e)
      {
         e.printStackTrace();
         // Display in browser status bar
         context.showStatus("Could not load image!");
      }
   }
   public void paint(Graphics g)
   {
      context.showStatus("Displaying image");
      g.drawImage(image, 0, 0, 200, 84, null);
      g.drawString("www.javalicense.com", 35, 100);
   } 
}

다음 애플릿을 호출합니다 :

<html>
<title>The ImageDemo applet</title>
<hr>
<applet code="ImageDemo.class" width="300" height="200">
<param name="image" value="java.jpg">
</applet>
<hr>
</html>

오디오 재생

이용주는 java.applet 패키지를 통해 애플릿 오디오 인터페이스를 재생의 AudioClip. 의 AudioClip 인터페이스는 세 가지 방법을 정의한다 :

  • 공공 무효 재생 () : 한 번 시작에서이 오디오 클립을 재생합니다.
  • 공공 무효 루프 () 루프는이 오디오 클립을 재생
  • 공공 무효 정지 () : 오디오 클립을 중지

의 AudioClip 객체를 얻기 위해, 당신은 getAudioClip () 메소드 애플릿 클래스를 호출해야합니다. 상관없이 즉시 결과를 반환하는 실제 오디오 파일의 URL 지점 여부.

오디오 파일을 재생할 때까지, 파일이 다운로드됩니다.

다음 예는 모든 오디오를 재생하는 단계를 보여줍니다

import java.applet.*;
import java.awt.*;
import java.net.*;
public class AudioDemo extends Applet
{
   private AudioClip clip;
   private AppletContext context;
   public void init()
   {
      context = this.getAppletContext();
      String audioURL = this.getParameter("audio");
      if(audioURL == null)
      {
         audioURL = "default.au";
      }
      try
      {
         URL url = new URL(this.getDocumentBase(), audioURL);
         clip = context.getAudioClip(url);
      }catch(MalformedURLException e)
      {
         e.printStackTrace();
         context.showStatus("Could not load audio file!");
      }
   }
   public void start()
   {
      if(clip != null)
      {
         clip.loop();
      }
   }
   public void stop()
   {
      if(clip != null)
      {
         clip.stop();
      }
   }
}

다음 통화 애플릿 :

<html>
<title>The ImageDemo applet</title>
<hr>
<applet code="ImageDemo.class" width="0" height="0">
<param name="audio" value="test.wav">
</applet>
<hr>

당신은 위의 예제를 테스트하기 위해 컴퓨터에 test.wav 사용할 수 있습니다.