数学建模社区-数学中国

标题: 编程方式修改MATLAB命令窗口(Command Window)颜色 [打印本页]

作者: 建不了的模。    时间: 2014-9-16 10:18
标题: 编程方式修改MATLAB命令窗口(Command Window)颜色
编程方式修改MATLAB命令窗口(Command Window)颜色
经常会出现这样的应用情况,比如我们需要同时打开两个MATLAB应用程序,此时我们希望能够通过颜色直观的区分它们。我们知道,可以通过File/Preferences菜单进行交互式修改MATLAB命令窗口的前景色和背景色,但可否通过编程的方式进行调整呢?

首先我们可以尝试修改MATLAB首选项中的颜色方案来达到效果
% 不使用MATLAB首选项中的配色
com.mathworks.services.Prefs.setBooleanPref('ColorsUseSystem',0);

% 指定背景颜色
com.mathworks.services.Prefs.setColorPref('ColorsBackground',java.awt.Color.yellow);
com.mathworks.services.ColorPrefs.notifyColorListeners('ColorsBackground');
复制代码
但是很惋惜的是,上面的修改会对所有的MATLAB窗口和所有MATLAB会话生效,比如Command Window,Command History,WorkSpace等,也许这并不是我们需要的。

比如我们只是希望修改Command Window的颜色,并且重启MATLAB以后,刚才的配色方案自动失效。下面的代码片段将顺利的帮你达到预期的效果:
cmdWinDoc = com.mathworks.mde.cmdwin.CmdWinDocument.getInstance;
listeners = cmdWinDoc.getDocumentListeners;
ii=1;
% 循环的方式,找到jTextArea的实例,然后设置颜色
while true
    jTextArea = listeners(ii);
    if isa(jTextArea,'javax.swing.JTextArea$AccessibleJTextArea')
        break
    end
    ii=ii+1;
end
复制代码
在找到jTextArea实例以后,我们就可以设置颜色,并且立即生效,重启MATLAB自动失效
% 可以使用下面任意一种方法设置背景色
jTextArea.setBackground(java.awt.Color.yellow);
jTextArea.setBackground(java.awt.Color(1,1,0));
set(jTextArea,'Background','yellow');
set(jTextArea,'Background',[1,1,0]);
复制代码


作者: 深V礼    时间: 2014-9-17 18:23
顶顶,发帖多多,收获多多




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5