如何使用 SwingExplorer 导航 Applet 内容? [英] How can I use SwingExplorer to navigate Applet content?

查看:26
本文介绍了如何使用 SwingExplorer 导航 Applet 内容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个站点有一个 SwingExplorer 工具 http://www.swingexplorer.com/ 用于导航Swing 内容,但我如何将其应用到 Applet?,尤其是如果我想将其集成到 eclipse-plugin 中,我该如何配置运行配置?

There is SwingExplorer tool from this site http://www.swingexplorer.com/ that used to navigate swing content but how do I apply it to Applet?,especially if I want to integrate it to eclipse-plugin how do I configure the running configuration?

我猜您需要提供要运行到 AppletViwer 的小程序的参数,并让 SwingExplorer 导航 AppletViewer(依次运行您的小程序类),但我不知道如何将此类参数传递给AppletViwer,谁能解释一下怎么做?

I guess that you need to supply the parameter of the applet that you want to run to AppletViwer and let the SwingExplorer navigate the AppletViewer(which in turn run your applet class) but i don't know how to pass such parameter to AppletViwer,Can anyone explain me how to do this?

请注意,简单地在小程序之上创建新框架并让它像往常一样运行 Swing 应用程序是不行的,因为它需要在类似浏览器的环境中运行.

Note that simply create new frame on top of applet and let it run as usual Swing application will not do because it need to be operated in browser-like environment.

推荐答案

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

It is possible to provide a basic applet stub for an applet that is being hosted in a frame (a desktop app.). Several methods of the applet context are easy to reproduce in an application. The others are either harder, impractical to implement easily, or not relevant to a desktop based applet.

此示例可以作为嵌入在 HTML 或小程序查看器中的小程序运行,也可以作为嵌入在桌面组件中的小程序运行(特别是 JOptionPane,因为代码较短).

This example can be run as either an applet embedded in HTML or the applet viewer, or as an applet embedded in a desktop component (specifically a JOptionPane since the code is shorter).

该示例改编自 OP 对小程序参数更感兴趣的示例.此版本还增加了对报告文档和代码库的支持.

The example was adapted from one in which the OP was more interested in the applet parameters. This version also adds support for reporting the document and code base.

/*
<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);
    }
}

这篇关于如何使用 SwingExplorer 导航 Applet 内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆