一尘不染

如何使用SwingExplorer浏览Applet内容?

java

该站点http://www.swingexplorer.com/上有一个SwingExplorer工具,该工具用于导航挥杆内容,但是如何将其应用到Applet?尤其是如果要将其集成到eclipse-
plugin中,如何配置运行方式组态?

我想您需要向AppletViwer提供要运行的applet的参数,并让SwingExplorer导航AppletViewer(这又将运行您的applet类),但是我不知道如何将此类参数传递给AppletViwer,可以有人解释我该怎么做吗?

请注意,只需在applet顶部创建新框架并让其像往常一样运行,Swing应用程序将无法运行,因为它需要在类似浏览器的环境中运行。


阅读 253

收藏
2020-12-03

共1个答案

一尘不染

可以提供一种基本的小应用程序 存根 对于在一帧被托管的小应用程序(一个桌面应用程序。)。applet 上下文的
几种方法很容易在应用程序中重现。其他的要么更难,不容易实现,要么与基于桌面的applet不相关。

此示例可以作为嵌入HTML的applet或applet查看器运行,也可以作为嵌入桌面组件的applet运行(特别是a,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);
    }
}
2020-12-03