查找Matlab图形对象的java句柄

版本1.53.0.1 (183 KB) 实验后奥特曼
查找包含在指定java容器或Matlab GUI句柄中的java对象

47 k下载

更新8月17日2021

查看许可协议

找到java容器或Matlab GUI句柄中包含的所有java对象
如果没有指定输出参数,那么将显示一个交互式GUI窗口,其中包含所有容器组件、它们的属性和回调的树状视图。
语法:
[handles,levels, parentid,listing] = findjobj(container,'PropName',PropValue(s),…)
输入:
- container -可选的GUI句柄。如果没有提供,那么当前的数字将被使用
- 'PropName',PropValue -可选的不区分大小写的属性对列表。PropName也可以命名为-PropName。
金宝app支持的属性:
- 'position' -根据包含指定X,Y位置或java元素的元素过滤结果
注意:指定Matlab的位置(X,Y =左下角的像素),而不是java的位置
- 'size' -根据具有指定W,H的元素过滤结果(以像素为单位)
- 'class' -根据那些包含PropValue子字符串(或java类)的元素过滤结果
注意:过滤是不区分大小写的,并且依赖于regexp,所以您可以传递通配符等。
- 'property' -根据具有指定的不区分大小写的属性字符串或具有单元格数组格式的属性值的元素过滤结果:{'propName', 'propValue'}。例如:findjobj(…,'property', {'Text','click me'})
- 'depth' -根据指定的深度过滤结果。0=顶级,Inf=所有级别(默认=Inf)
- 'flat' -同:'depth',0
'not','class','c'返回除类为'c'外的所有元素
- 'persist' -持久化图形组件信息,为后续调用提供更快的结果
- 'print' -在一个分层列表中显示所有Java元素
注释1:java容器的元素索引或句柄的可选PropValue
注2:一般情况下,在所有筛选完成后,该选项会放在最后。
- 'list' -与'print'相同
输出:
- handles Java元素句柄列表
- levels - Java元素对应层次结构级别的列表(top=0)
- parentIds -对应java元素的父容器的索引列表(在未过滤句柄中)
- list - 'print'/'list'选项的结果(如果'print'/'list'未指定则为空)
示例用法:
>> hButton = uicontrol('string','点击我');
>> jButton = findjobj(hButton,'nomenu');% or: jButton = findjobj('property',{'Text','点击我'});
> > jButton.setFlyOverAppearance (1);
> > jButton.setCursor (java.awt.Cursor.getPredefinedCursor (java.awt.Cursor.HAND_CURSOR));
> >设置(jButton FocusGainedCallback, @myMatlabFunction);大约30个回调点可用…
> > jButton.get;列出所有可更改的属性…
>> hEditbox = uicontrol('style',edit');
>> jEditbox = findjobj(hEditbox,'nomenu');
> > jEditbox.setCaretColor (java.awt.Color.red);
> > jEditbox。KeyTypedCallback = @myCallbackFunc;%更多的回调从这里来…
> > jEdit.requestFocus;
(在实用工具的帮助部分中有更多示例)
已知问题/限制:
-当前不能处理多个容器对象-一次只能处理一个
当图形加载了很多UI组件时,初始处理会有点慢(所以最好使用“persist”)
传递一个容器Matlab句柄目前是通过位置+大小找到的:应该找到更好的方法来做到这一点
-标签在java中有一个只写文本的属性,所以不能使用'property',{' text ','string'}符号
技术描述:
* https://UndocumentedMatlab.com/articles/findjobj-find-underlying-java-object
* https://UndocumentedMatlab.com/articles/findjobj-gui-display-container-hierarchy
警告:
此代码严重依赖于未文档化和不支持的Matlab功能。金宝app它适用于Matlab 7+,但使用风险自负!
bug和建议:
请发送给Yair Altman (altmany at gmaildot com)
参见:
Java, handle, findobj, findall

引用作为

亚伊尔·奥特曼(2022年)。查找Matlab图形对象的java句柄(//www.tatmou.com/matlabcentral/fileexchange/14317-findjobj-find-java-handles-of-matlab-graphic-objects), MATLAB中央文件交换。检索

MATLAB版本兼容性
使用R14SP3创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!