如何在数字中添加 "tutorial message div"?

How to add a "tutorial message div" to figures?

安装R2018b后,我打开的第一个图有一个有趣的信息(蓝色显示):

之所以有趣,是因为它包含文本换行、透明度等功能,即使文本调整大小,图像仍保持恒定宽度(这让我想起了 CSS3 flexbox,因此有了标签)等

动画的最后一部分是慢动作,以更好地展示 div 的大小如何跟随图形的大小。

以防万一,我使用的是 Win 10 v1803。

问题:

我想知道我们如何绘制类似的、自定义的、divs(因为缺少一个更好的词)在我们的数字中。 (重要的是要强调这是不是一个UIFigure!)


到目前为止我发现了什么:

在 Java 方面进行了一些挖掘之后(从 findjobj 开始,然后是很多 .getComponent(0).getComponent(0)...),我终于找到了有问题的组件.这是我学到的东西:

  1. 此组件称为 InfoPanel,是 MATLAB Java API 的一部分。 class 定义本身位于:

    MATLAB/R2018b/java/jar/hg.jar!/com/mathworks/hg/util/InfoPanel.class
    
  2. 要让它出现,我们需要调用static方法addBannerPanel,传入一个图形句柄:

    com.mathworks.hg.util.InfoPanel.addBannerPanel( figure(randi(1E4)) );
    

    或另一个也接受自定义面板的签名:

    jIP = com.mathworks.hg.util.InfoPanel;
    jIP.setBackground(java.awt.Color(0.8, 0.7, 0.1));
    com.mathworks.hg.util.InfoPanel.addBannerPanel( figure(randi(1E4)), jIP );
    
  3. 控制这是否应该出现的 MATLAB 设置是 showinteractioninfobar<prefdir>/matlab.settings XML.

  4. InfoPanel 的 "interesting parts" 似乎是私有的,这意味着它几乎不允许任何自定义(主要是一些颜色;不是字符串或图标),但它复制此 class 并公开我们需要的所有元素应该相当容易。