Incrustar un JApplet de terceros en una GUI de Swing y pasar los parámetros

Hay un applet de terceros que me gustaría incluir en mi aplicación Swing. Básicamente, me gustaría que sea solo otro panel. Este applet hace uso de muchos parámetros, por ejemplo

final String config_filename = getParameter(XXX); 

He visto mucha documentación sobre cómo enviar valores de parámetros a través de HTML, pero ¿cómo se hace a través de un código (o quizás archivos de propiedad)? ¡Cualquier ayuda sería apreciada!

Implemente AppletStub y AppletStub como el apéndice de la instancia de applet. P.EJ

 /*    */ import java.applet.*; import javax.swing.*; import java.net.URL; import java.util.HashMap; public class ParamApplet extends JApplet { public void init() { String param = getParameter("param"); System.out.println("parameter: " + param); add(new JLabel(param)); } public static void main(String[] args) { ApplicationAppletStub stub = new ApplicationAppletStub(); stub.addParameter(args[0], args[1]); ParamApplet pa = new ParamApplet(); pa.setStub(stub); pa.init(); pa.start(); pa.setPreferredSize(new java.awt.Dimension(200,200)); JOptionPane.showMessageDialog(null, pa); } } class ApplicationAppletStub implements AppletStub { HashMap params = new HashMap(); public void appletResize(int width, int height) {} public AppletContext getAppletContext() { return null; } public URL getDocumentBase() { return null; } public URL getCodeBase() { return null; } public boolean isActive() { return true; } public String getParameter(String name) { return params.get(name); } public void addParameter(String name, String value) { params.put(name, value); } } 

E / S típico

 prompt>java ParamApplet param "apples & oranges" parameter: apples & oranges prompt>java ParamApplet param 42 parameter: 42 prompt> 

Para un entorno de applet completo, debe implementar AppletContext y AppletStub (consulte la respuesta de Andrew para obtener un ejemplo mínimo), y luego pase el último a setStub de su applet después de crear la instancia con el constructor. También debe tener cuidado de llamar a los métodos del ciclo de vida del applet init() , start() , stop() y destroy() (después de configurar el stub del applet).

El método Applet.getParameter() simplemente delega en el talón del applet, por lo tanto, en su caso especial, podría ser suficiente implementar AppletStub (los métodos necesarios) y pasarlo, omitiendo el AppletContext. También puede escapar sin llamar a algunos o incluso a todos los métodos del ciclo de vida.