此站点http://www.swingexplorer.com/中有SwingExplorer工具用于导航swing内容,但如何将其应用于Applet?,特别是如果我想将其集成到eclipse-plugin中,如何配置运行配置?
我想您需要提供要运行到AppletViwer的applet的参数,并让SwingExplorer导航AppletViewer(后者又运行您的applet类),但我不知道如何将此参数传递给AppletViwer,有谁能解释我怎么做?
请注意,只需在applet上创建一个新框架,让它像往常一样运行Swing应用程序不会这样做,因为它需要在类似浏览器的环境中运行。
答案 0 :(得分:1)
可以为在框架(桌面应用程序)中托管的applet提供基本applet 存根。 applet context 的几种方法很容易在应用程序中重现。其他的要么难以实现,要么难以实现,要么与基于桌面的applet无关。
此示例可以作为嵌入在HTML或applet查看器中的applet运行,也可以作为嵌入桌面组件的applet运行(特别是JOptionPane
,因为代码更短)。
该示例改编自OP对applet参数更感兴趣的示例。此版本还增加了对报告文档和代码库的支持。
/*
<applet code='DesktopEmbeddedApplet' width='400' height='100'>
<param name='param' value='embedded in applet viewer or the browser'>
</applet>
*/
import java.applet.*;
import java.awt.*;
import javax.swing.*;
import java.io.File;
import java.net.URL;
import java.util.HashMap;
public class DesktopEmbeddedApplet extends JApplet {
public void init() {
setLayout(new GridLayout(0,1));
String param = getParameter("param");
System.out.println("parameter: " + param);
add(new JLabel(param));
add(new JLabel("" + getDocumentBase()));
add(new JLabel("" + getCodeBase()));
}
public static void main(String[] args) {
ApplicationAppletStub stub = new ApplicationAppletStub();
stub.addParameter("param", "embedded in application");
DesktopEmbeddedApplet pa = new DesktopEmbeddedApplet();
pa.setStub(stub);
pa.init();
pa.start();
pa.setPreferredSize(new java.awt.Dimension(400,100));
JOptionPane.showMessageDialog(null, pa);
}
}
class ApplicationAppletStub implements AppletStub {
HashMap<String,String> params = new HashMap<String,String>();
public void appletResize(int width, int height) {}
public AppletContext getAppletContext() {
return null;
}
public URL getDocumentBase() {
URL url = null;
try {
url = new File(".").toURI().toURL();
} catch(Exception e) {
System.err.println("Error on URL formation! null returned." );
e.printStackTrace();
}
return url;
}
public URL getCodeBase() {
URL url = null;
try {
url = new File(".").toURI().toURL();
} catch(Exception e) {
System.err.println("Error on URL formation! null returned." );
e.printStackTrace();
}
return url;
}
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);
}
}