Как запустить апплет другой апплет
В некоторых случаях вам может понадобиться существующий апплет для запуска другого апплета для выполнения другой задачи.
Вот два файла для демонстрации
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»).