单击按钮以打开另一个小程序

时间:2015-03-07 03:13:41

标签: java applet

我想通过点击按钮调用另一个小程序;然后将关闭旧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;

            }
        }
    }
}

1 个答案:

答案 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()