2017-08-08 50 views
0

我开发了一个独立的MATLAB应用程序。要使用定制的一个替代图窗口上的MATLAB图标,我用下面的代码:在MATLAB编译的应用程序中更改javaframe的图标

jframe = get(hFig,'javaframe'); 
S1=pwd; S2='\appleo.png'; S={[S1 S2]}; 
jIcon=javax.swing.ImageIcon(S); 
jframe.setFigureIcon(jIcon); 

当程序在MATLAB中运行,它工作得很好,我得到的数字窗口的新图标。但是当这个程序打包到一个独立的应用程序中时,'MATLAB图标'被替换为'Java图标',而不是定制的。为什么?什么是出路?

+1

请注意,更换该图标违反TMW许可证。 – Oleg

回答

0

的问题主要是,你在命令pwd让您的PNG文件的位置,和该命令,因为它与常规MATLAB中确实不会给相同的结果编译的应用程序。

在编译应用程序时,需要小心在哪里找到像这样的资源文件 - 您需要将它们打包到编译的应用程序中,然后在代码中参考它们相对于命令ctfroot的输出的位置为您提供编译后的应用程序解压缩的路径。

您还有第二个问题,但是,这是MATLAB和MATLAB编译器的许可协议明确禁止替换图形窗口的图标。你所做的是违反许可证。

最后,很快你会遇到第三个问题,那就是在接下来的几个版本中,MathWorks将从基于Java的图形窗口转向基于HTML的图形窗口(参见App Designer更新的版本,它构成了这个的初始阶段)。因此,如果您打算在将来的MATLAB版本中开发您的应用程序,那么您将无法以这种方式更改窗口图标,因为该窗口没有Java框架。

相关问题