【发布时间】:2012-04-17 11:24:54
【问题描述】:
关于 MATLAB 的事实:
- MATLAB UI 是 Java Swing。
- MATLAB 与 Java 具有出色的互操作性,可以直接从 MATLAB 代码初始化 Java 对象并调用它们的方法,甚至可以将 MATLAB 定义的侦听器传递给 Java!
我的问题:
MATLAB 不提供后台线程,因此要使 MATLAB UI 响应,我们必须调用函数 drawnow 来刷新 Swing EDT 队列,另请参见 here 和 here。这是一个众所周知的事实,到目前为止还不错。
但现在我有一个客户,其执行计算的代码是一个 MATLAB p 文件(加密),所以我无法访问将 drawnow 放在那里的代码。
尝试失败:
我尝试启动一个计时器来完成调用 drawnow 的工作,但它似乎不起作用 - 计时器本身需要一个先例 drawnow 来触发其回调。
编辑:最后,我使用在另一个线程上运行的 .NET/WPF 实现了 GUI,因此它始终保持响应速度,并且看起来比原始 MATLAB 好得多。
【问题讨论】:
标签: java swing matlab user-interface