我想从Matlab代码中调用Java applet(专门处理草图),我可以这样做吗,如果有的话,有没有例子。
答案 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 实用程序类 MainFrame
或 JMainFrame
来包含和显示小程序。这本身是不够的,因为关闭小程序窗口会导致 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);