我想通过点击按钮调用另一个小程序;然后将关闭旧applet或将其重新加载到新applet。
我的动作侦听器还没有任何内容。
public class ConImage extends JApplet implements ActionListener {
Button btn;
Applet second;
public void init()
{
setSize(1600,900);
setLayout(null);
btn=new Button("Replace with other applet");
add(btn);
btn.addActionListener(this);
}
public void paint(Graphics g)
{
super.paint(g);
btn.setLocation(100, 100);
btn.setSize(100, 50);
}
public void actionPerformed(ActionEvent e)
{ second=null;
second= getAppletContext().getApplet("SecondClass");
if (second!=null)
{
if(e.getSource()==Time)
{
SecondClass ma= (SecondClass) second;
}
}
}
}
答案 0 :(得分:0)
我很确定由于Java的安全系统,这是不可能的。最好的方法是拥有一个包含JApplet
数组的主类。在该主applet上,我将创建一个方法,从数组中设置可见的applet,调用init()
,并在请求呈现时调用该applet的paint()
。
像这样:
public class MasterApplet extends JApplet {
private int index = 0;
private JApplet[] applets;
public void init(){
JApplet appletA = new AppletA();
JApplet appletB = new AppletB();
applets = new JApplet[]{appletA, appletB};
setViewing(index);
}
public void paint(Graphics g){
applets[index].paint(g);
}
public void setViewing(int idex){
index = idex;
applets[idex].init();
revalidate();
repaint();
}
如果您想更改applet,请将其添加到applet数组中,然后使用该applet的索引调用setViewing()
。