산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 - 애플릿 기본

애플릿 웹 브라우저에서 실행되는 Java 프로그램입니다. 애플릿은 전체 Java API를 마음대로 사용할 수 있기 때문에 완전한 기능을 갖춘 Java 애플리케이션이 될 수 있습니다.

다음을 포함하여 애플릿과 독립 실행형 Java 응용 프로그램 사이에는 몇 가지 중요한 차이점이 있습니다. -

애플릿의 수명 주기

Applet 클래스의 네 가지 메소드는 진지한 애플릿을 빌드할 수 있는 프레임워크를 제공합니다.

"Hello, World" 애플릿

다음은 HelloWorldApplet.java -

라는 간단한 애플릿입니다.
import java.applet.*;
import java.awt.*;

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

이러한 import 문은 클래스를 애플릿 클래스의 범위로 가져옵니다.

이러한 import 문이 없으면 Java 컴파일러는 애플릿 클래스가 참조하는 Applet 및 Graphics 클래스를 인식하지 못합니다.

애플릿 클래스

모든 애플릿은 java.applet.Applet 클래스의 확장입니다. . 기본 Applet 클래스는 파생된 Applet 클래스가 브라우저 컨텍스트에서 정보와 서비스를 얻기 위해 호출할 수 있는 메서드를 제공합니다.

여기에는 다음을 수행하는 방법이 포함됩니다. -

또한 Applet 클래스는 뷰어나 브라우저가 애플릿에 대한 정보를 얻고 애플릿의 실행을 제어하는 ​​인터페이스를 제공합니다. 시청자는 -

Applet 클래스는 이러한 각 메서드의 기본 구현을 제공합니다. 이러한 구현은 필요에 따라 재정의될 수 있습니다.

"Hello, World" 애플릿은 그대로 완성됩니다. 재정의된 유일한 방법은 페인트 방법입니다.

애플릿 호출

애플릿은 HTML 파일에 지시문을 포함하고 애플릿 뷰어 또는 Java 지원 브라우저를 통해 파일을 보면 호출할 수 있습니다.

태그는 HTML 파일에 애플릿을 포함하기 위한 기초입니다. 다음은 "Hello, World" 애플릿을 호출하는 예입니다. −

<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 애플릿 태그를 참조하세요.

태그의 code 속성은 필수입니다. 실행할 애플릿 클래스를 지정합니다. 너비와 높이는 애플릿이 실행되는 패널의 초기 크기를 지정하는 데도 필요합니다. 애플릿 지시문은 태그로 닫아야 합니다.

애플릿이 매개변수를 사용하는 경우 사이에 태그를 추가하여 매개변수에 대한 값을 전달할 수 있습니다. 브라우저는 애플릿 태그 사이의 텍스트 및 기타 태그를 무시합니다.

Java를 지원하지 않는 브라우저는 을 처리하지 않습니다. 따라서 애플릿과 관련이 없는 태그 사이에 나타나는 모든 항목은 Java를 지원하지 않는 브라우저에서 볼 수 있습니다.

뷰어 또는 브라우저는 문서 위치에서 컴파일된 Java 코드를 찾습니다. 다르게 지정하려면 다음과 같이 태그의 codebase 속성을 사용하십시오 -

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

애플릿이 기본 패키지가 아닌 다른 패키지에 있는 경우 패키지/클래스 구성 요소를 구분하기 위해 마침표 문자(.)를 사용하여 코드 속성에 보유 패키지를 지정해야 합니다. 예를 들어 -

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

애플릿 매개변수 가져오기

다음 예는 애플릿이 문서에 지정된 설정 매개변수에 응답하도록 하는 방법을 보여줍니다. 이 애플릿은 검은색과 두 번째 색상의 바둑판 패턴을 표시합니다.

두 번째 색상과 각 사각형의 크기는 문서 내의 애플릿에 대한 매개변수로 지정할 수 있습니다.

CheckerApplet은 init() 메서드에서 매개변수를 가져옵니다. 또한 paint() 메서드에서 매개변수를 가져올 수도 있습니다. 그러나 값을 가져오고 새로 고칠 때마다가 아니라 애플릿을 시작할 때 한 번 설정을 저장하는 것이 편리하고 효율적입니다.

애플릿 뷰어 또는 브라우저는 실행되는 각 애플릿의 init() 메서드를 호출합니다. 뷰어는 애플릿을 로드한 직후에 init()를 한 번 호출합니다. (Applet.init()은 아무 작업도 수행하지 않도록 구현됩니다.) 사용자 정의 초기화 코드를 삽입하도록 기본 구현을 재정의합니다.

Applet.getParameter() 메서드는 매개변수 이름이 지정된 매개변수를 가져옵니다(매개변수 값은 항상 문자열임). 값이 숫자 또는 기타 문자가 아닌 데이터인 경우 문자열을 구문 분석해야 합니다.

다음은 CheckerApplet.java의 골격입니다 -

import java.applet.*;
import java.awt.*;

public class CheckerApplet extends Applet {
   int squareSize = 50;   // initialized to default size
   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) {
      // Let default value remain
   }
}

애플릿은 parseSquareSize()를 호출하여 squareSize 매개변수를 구문 분석합니다. parseSquareSize()는 문자열을 구문 분석하고 정수를 반환하는 라이브러리 메서드 Integer.parseInt()를 호출합니다. Integer.parseInt()는 인수가 유효하지 않을 때마다 예외를 발생시킵니다.

따라서 parseSquareSize()는 잘못된 입력에서 애플릿이 실패하도록 허용하지 않고 예외를 포착합니다.

애플릿은 parseColor()를 호출하여 색상 매개변수를 Color 값으로 구문 분석합니다. 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>

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

애플릿으로 애플리케이션 변환

그래픽 Java 응용 프로그램(즉, AWT를 사용하고 Java 프로그램 실행기로 시작할 수 있는 응용 프로그램)을 웹 페이지에 포함할 수 있는 애플릿으로 쉽게 변환할 수 있습니다.

다음은 애플리케이션을 애플릿으로 변환하는 구체적인 단계입니다.

  • 애플릿 코드를 로드할 적절한 태그로 HTML 페이지를 만드십시오.

  • JApplet 클래스의 하위 클래스를 제공합니다. 이 수업을 공개합니다. 그렇지 않으면 애플릿을 로드할 수 없습니다.

  • 응용 프로그램에서 주요 메서드를 제거합니다. 응용 프로그램에 대한 프레임 창을 구성하지 마십시오. 귀하의 애플리케이션이 브라우저에 표시됩니다.

  • 프레임 창 생성자에서 애플릿의 init 메소드로 초기화 코드를 이동하십시오. 애플릿 개체를 명시적으로 구성할 필요가 없습니다. 브라우저는 이를 인스턴스화하고 init 메소드를 호출합니다.

  • setSize에 대한 호출을 제거하십시오. 애플릿의 경우 크기 조정은 HTML 파일의 너비 및 높이 매개변수로 수행됩니다.

  • setDefaultCloseOperation에 대한 호출을 제거하십시오. 애플릿은 닫을 수 없습니다. 브라우저가 종료되면 종료됩니다.

  • 응용 프로그램이 setTitle을 호출하는 경우 메서드에 대한 호출을 제거합니다. 애플릿은 제목 표시줄을 가질 수 없습니다. (물론 HTML 제목 태그를 사용하여 웹 페이지 자체에 제목을 지정할 수 있습니다.)

  • setVisible(true)을 호출하지 마십시오. 애플릿이 자동으로 표시됩니다.

이벤트 처리

애플릿은 Container 클래스에서 이벤트 처리 메서드 그룹을 상속합니다. Container 클래스는 특정 유형의 이벤트를 처리하기 위한 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 및 기타 형식의 이미지를 표시할 수 있습니다. 애플릿 내에서 이미지를 표시하려면 java.awt.Graphics 클래스에 있는 drawImage() 메서드를 사용합니다.

다음은 이미지를 표시하는 모든 단계를 보여주는 예입니다 -

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 객체를 얻으려면 Applet 클래스의 getAudioClip() 메서드를 호출해야 합니다. 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>
</html>

PC에서 test.wav를 사용하여 위의 예를 테스트할 수 있습니다.


java

  1. 자바 연산자
  2. 자바 주석
  3. 자바 for-each 루프
  4. 자바 문자열
  5. 자바 인터페이스
  6. 자바 익명 클래스
  7. 자바 리소스 사용
  8. 자바 주석
  9. 자바 어설션
  10. 자바 벡터