我制作了一个向用户致意的 Loader Applet,当用户单击该 Applet 上显示的按钮时,它会启动主 applet,并且 Loader Applet 被销毁。
但是点击另一个小程序没有启动!
加载器小程序:
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
public class Loader extends JApplet implements ActionListener{
Display secondApplet;
Button button;
@Override
public void init() {
setSize(800,600);
}
@Override
public void start() {
setLayout(new FlowLayout());
button = new Button ("Click me !!");
add(button);
button.addActionListener(this);
}
@Override
public void paint(Graphics g) {
}
@Override
public void actionPerformed(ActionEvent e) {
secondApplet = (Display)getAppletContext().getApplet("Display");
if (secondApplet != null) {
secondApplet.init();
secondApplet.start();
}
else {
System.out.println("Not Running\n");
}
}
}
显示小程序:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JApplet;
public class Display extends JApplet {
@Override
public void init() {
setSize(600,400);
}
@Override
public void paint(Graphics g) {
g.fillRect(0, 0, this.getWidth(), this.getHeight());
}
}
如何创建另一个 Applet 的实例并销毁当前的 Applet !!
最佳答案
由于 Applet/JApple 本身就是一个 java.awt.Panel,因此您可以将一个嵌入另一个,对于您的特定情况,您可以将 Display 嵌入 < strong>Loader 在Loader 中使用面板根据需要重新加载Display。
像这样:
Panel container = new Panel();
container.setLayout(new GridLayout(1,0));
container.add(secondApplet); //Display Applet
add(container):
secondApplet.init();
secondApplet.start();
button.setVisible(false);
关于java - 从另一个 Applet 启动另一个 Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15312058/