Как запустить апплет другой апплет
В некоторых случаях вам может понадобиться существующий апплет для запуска другого апплета для выполнения другой задачи.
Вот два файла для демонстрации
1. AppletExample1.java
2. AppletExample2.java
«AppletExample1.java» содержит «Thread» и запускает «AppletExample2.java» через 5 секунд.
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. HTML-апплет загрузки
Для загрузки «AppletExample1» нет ничего другого, просто загрузите его как обычно:
Testing
4. Done
Вы увидите, что апплет будет отображаться (AppletExample1)
"I'm Applet 1 ~" "Loading Applet 2 ..."
Через 5 секунд он изменится на (AppletExample2)
I'm Applet 2 ~"
Как насчет параметра Applet?
Оба апплета будут иметь одинаковые параметры, указанные в теге апплета.
Например,
И «AppletExample1.java», и «AppletExample2.java» могут получить доступ к значению «paramUrl» с помощью метода getParameter («paramUrl»).