我是新来的.
当我使用MATLAB时,我经常遇到java错误.我使用的是英特尔Mac,MATLAB版本是R2012a.
该错误显示在MATLAB命令窗口中,如下所示:
java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:1971)
at java.awt.Component.getLocationOnScreen(Component.java:1945)
at apple.awt.CAccessibility$22.call(CAccessibility.java:370)
at apple.awt.CAccessibility$22.call(CAccessibility.java:368)
at apple.awt.CToolkit$CallableWrapper.run(CToolkit.java:1121)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at apple.awt.CToolkit$CPeerEvent.dispatch(CToolkit.java:1211)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
据我所知,只有当我用鼠标做一些事情时才会发生此错误.
例如
When I right-click a MATLAB function in Current Folder, then click open. I will get 80% chance to get this error. But If just type edit xxx.m in Command Window. then I will never get this error.
When I drag a variable from Workspace to Variable Editor, I have a 80% chance to get this error. And I don’t how to view a variable in Variable Editor by using command.
并且,如果发生此错误,它将一直发生,直到您关闭MATLAB并再次重新打开,如果您使用鼠标执行某些操作.例如通过鼠标添加MATLAB搜索路径的路径,使用鼠标更改目录.如果你重新打开它,当你使用鼠标时,你将有80%的机会再次遇到这个问题.
还有其他人看到过这类问题吗?我对java一无所知,有人可以给我一些建议.谢谢.
解决方法:
我不能说这个特定的错误,但是这样的错误在Matlab中很常见.这是由于Matlab GUI中的一个错误(用Java编写).在这种情况下,看起来它试图打开特定于Mac的“打开文件”对话框,然后失败,然后它试图获取该对话框的位置,因为它从未正确打开而引发错误.一旦Java抛出错误,GUI就会变得混乱,并且会对您所做的一切产生错误.
你似乎知道如何处理自己,但这里是我给那些得到这样错误的同学们的一般建议:这些错误信息在你的屏幕上看起来很可怕,特别是当你触发第一个错误信息后,每次点击都会突然弹出但是不要惊慌,它们通常都是无害的.从GUI(通常可以工作)或使用命令save temp.mat(通常可以正常工作)中平静地保存工作区.保存工作空间后关闭Matlab,然后重新打开Matlab并从GUI或使用命令load temp.mat重新加载工作空间.现在你的Matlab会话又回来了,你没有丢失任何数据.
标签:java,matlab
来源: https://codeday.me/bug/20190629/1331185.html