在MATLAB编译的应用程序中更改javaframe的图标
问题描述:
我开发了一个独立的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图标',而不是定制的。为什么?什么是出路?
答
的问题主要是,你在命令pwd
让您的PNG文件的位置,和该命令,因为它与常规MATLAB中确实不会给相同的结果编译的应用程序。
在编译应用程序时,需要小心在哪里找到像这样的资源文件 - 您需要将它们打包到编译的应用程序中,然后在代码中参考它们相对于命令ctfroot
的输出的位置为您提供编译后的应用程序解压缩的路径。
您还有第二个问题,但是,这是MATLAB和MATLAB编译器的许可协议明确禁止替换图形窗口的图标。你所做的是违反许可证。
最后,很快你会遇到第三个问题,那就是在接下来的几个版本中,MathWorks将从基于Java的图形窗口转向基于HTML的图形窗口(参见App Designer更新的版本,它构成了这个的初始阶段)。因此,如果您打算在将来的MATLAB版本中开发您的应用程序,那么您将无法以这种方式更改窗口图标,因为该窗口没有Java框架。
请注意,更换该图标违反TMW许可证。 – Oleg