Tag: matlab java

如何以编程方式在MATLAB编辑器中执行“collapse-all-folds”?

我一直在努力解决这个问题的时间比我想承认的要长一些。 我正在尝试以编程方式执行当用户单击“ View > Collapse All按钮或在编辑器窗口中单击鼠标右键,然后单击Code Folding >“ Fold All Code Folding Action时发生的相同Action 。 到目前为止我发现了什么? 可以在enum com.mathworks.mde.editor.ActionID找到与Action对应的String ,它是: ‘collapse-all-folds’ 。 当Action激活时,似乎执行以下方法: org.netbeans.api.editor.fold.FoldUtilities.collapseAll(…) (因此netbeans标记)。 这段代码允许我获取EditorAction , ActionManager , MatlabEditor实例: jEd = com.mathworks.mlservices.MLEditorServices.getEditorApplication.getActiveEditor; jAm = com.mathworks.mde.editor.ActionManager(jEd); jAc = com.mathworks.mde.editor.EditorAction(‘collapse-all-folds’); 我的问题是我找不到实际激活 Action 。 任何想法/替代品? EDIT1 :在“书”中挖了一下之后,我觉得我比以前更接近(但仍然不是那里)。 从书中引用: Java GUI组件通常使用ActionMap来存储由侦听器在鼠标,键盘,属性或容器事件上调用的可运行Actions 。 与对象方法不同,MATLAB不能直接调用Actions 。 然后解释了一个解决方法,其中大致涉及:获取某种Action对象; 创建一个ActionEvent并使用ActionEvent作为参数调用Action的actionPerformed ,如下所示: import java.awt.event.*; jEd […]