Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击按钮打开另一个小程序_Java_Applet - Fatal编程技术网

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

Java 单击按钮打开另一个小程序,java,applet,Java,Applet,我想通过单击按钮调用另一个小程序;然后,旧的小程序将被关闭或重新加载到新的小程序中 我的动作监听器还没有任何东西 public class ConImage extends JApplet implements ActionListener { Button btn; Applet second; public void init() { setSize(1600,900); setLayout(null); bt

我想通过单击按钮调用另一个小程序;然后,旧的小程序将被关闭或重新加载到新的小程序中

我的动作监听器还没有任何东西

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;

            }
        }
    }
}

我很确定这是不可能的,因为Java的安全系统。这样做的最好方法是使用一个master类,它有一个
JApplet
数组。在主小程序上,我将创建一个方法,从数组中设置可见的小程序,调用
init()
,并在请求渲染时调用该小程序的
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();
}

如果要更改小程序,请将其添加到小程序数组中,然后调用
setViewing()
带有该小程序的索引。

请不要以大写字母开头变量名,我认为这是不可能的,因为Java的安全功能。使用CardLayout在视图之间切换。我已经删除了所有只会掩盖问题要点的附带细节。感谢各位的建议,我将尽力在这我只是一个新手,我只是通过教程学习或者只是使用卡片布局…还有,你是如何将当前视图连接到浏览器容器中的本机对等点的。。。。