Comment une applet lance une autre applet

Comment une applet lance une autre applet

Dans certains scénarios, vous pouvez avoir besoin d'une applet existante pour lancer une autre applet pour effectuer une autre tâche.

Voici deux fichiers de démonstration

1. AppletExample1.java
2. AppletExample2.java

«AppletExample1.java» contient un «Thread» et lancez «AppletExample2.java» après 5 secondes.

1. AppletExample1.java

package com.example.applet;

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

public class AppletExample1 extends Applet
implements Runnable, AppletStub {

    Thread threadABC;

    public void init(){}

    public void paint(Graphics g) {
        g.drawString("I'm Applet 1 ~", 10, 10);
        g.drawString("Loading Applet 2 ...", 10, 30);

    }

    public void run() {

      try {

        //sleep for 5 seconds , for demo
        threadABC.sleep(5000);

        Class applet2 = Class.forName("com.example.applet.AppletExample2");
        Applet appletToLoad = (Applet)applet2.newInstance();
        appletToLoad.setStub(this);
        setLayout( new GridLayout(1,0));
        add(appletToLoad);
        appletToLoad.init();
        appletToLoad.start();

      }catch (Exception e) {
        System.out.println(e);
      }

        validate();
    }

    public void start(){
        threadABC = new Thread(this);
        threadABC.start();
    }

    public void stop() {
        threadABC.stop();
        threadABC = null;
    }

    public void appletResize( int width, int height ){
        resize( width, height );
    }

}

2. AppletExample2.java

package com.example.applet;

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

public class AppletExample2 extends Applet{

    public void init(){ }

    public void paint(Graphics g) {
        g.drawString("I'm Applet 2 ~", 10, 10);
    }

}

3. Applet de chargement HTML

Il n'y a pas de différence pour charger «AppletExample1», il suffit de le charger normalement:

Testing

4. Done

Vous remarquerez que Applet s'affichera (AppletExample1)

"I'm Applet 1 ~"
"Loading Applet 2 ..."

Après 5 secondes, il deviendra (AppletExample2)

I'm Applet 2 ~"

Que diriez-vous du paramètre Applet?

Les deux applets partageront les mêmes paramètres spécifiés dans la balise applet.

Par exemple,


«AppletExample1.java» et «AppletExample2.java» peuvent accéder à la valeur «paramUrl» avec la méthode getParameter («paramUrl»).