アプレットが別のアプレットを起動する方法
特定のシナリオでは、別のアプレットを起動して他のタスクを実行するために既存のアプレットが必要な場合があります。
デモンストレーションのための2つのファイル
{空} 1。 AppletExample1.java 2. AppletExample2.java
「AppletExample1.java」には「スレッド」が含まれ、5秒後に「AppletExample2.java」が起動されます。
1. AppletExample1.java
package com.mkyong.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.mkyong.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.mkyong.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.完了
Appletが表示されることに気づくでしょう(AppletExample1)
"I'm Applet 1 ~" "Loading Applet 2 ..."
5秒後に(AppletExample2)に変わります。
I'm Applet 2 ~"
Appletパラメータはどうですか?
両方のアプレットは、アプレットタグ内で指定されたものと同じパラメータを共有します。
例えば、
“AppletExample1.java”と “AppletExample2.java”の両方がgetParameter( “paramUrl”)メソッドで “paramUrl”値にアクセスできます。