我可以从Matlab代码调用java applet吗?

时间:2013-02-18 14:23:50

标签: java matlab applet processing

我想从Matlab代码中调用Java applet(专门处理草图),我可以这样做吗,如果有的话,有没有例子。

3 个答案:

答案 0 :(得分:1)

小程序?可能不是,但是Matlab有它自己的JVM,所以你可以从“java ...”命令行运行任何东西,你可以从Matlab运行。

答案 1 :(得分:0)

我很高兴你读到: the link

MATLAB在这里说 2009年7月6日 从MATLAB调用Java

到目前为止,还没有人从Interactive Web Pages帖子中获得额外的功劳。我认为显示没有图像文件的图形的问题太有趣了,所以我自己想出了解决方案并把它放在文件交换上。涉及ActiveX的第二个挑战将保持开放,直到我有机会写出其解决方案。或者,如果您没有时间这样做,您仍然可以通过向我们发送桌面来赢取T恤。 ...

答案 2 :(得分:0)

[我怀疑原发帖者在八年后仍然对这个答案感兴趣,但也许还有一两个人会感兴趣。]

我使用 Java 3D 实用程序类 MainFrameJMainFrame 来包含和显示小程序。这本身是不够的,因为关闭小程序窗口会导致 System.exit(0),这也会导致 Matlab 退出/崩溃,通常被视为不受欢迎的。所以我写了以下 Java 片段来临时将 SecurityManager 更改为禁止退出的代码。

import java.applet.Applet;
import com.sun.j3d.utils.applet.MainFrame;

public class AppletInMatlab {
    public static MainFrame show(Applet applet, int width, int height) {
        SecurityManager sm = System.getSecurityManager();
        System.setSecurityManager(new SecurityManager() {
            public void checkExit(int status) {
                throw(new SecurityException());
            }
        });
        MainFrame mainframe = new MainFrame(applet, width, height);
        System.setSecurityManager(sm);
        return mainframe;
    }
}

现在,为了让您最喜欢的小程序工作,您在 Matlab 中执行以下几行,此处使用 HelloWorld 小程序进行说明,但前提是您的 Matlab Java 路径已正确配置:

>> hw = javaObjectEDT('HelloWorld');
>> AppletInMatlab.show(hw, 200, 50);