4

私はここでは新しいです。

MATLAB を使用すると、Java エラーが頻繁に発生します。Intel 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)

私が知っているように、このエラーは、マウスで何かをしたときにのみ発生します。

例えば

現在のフォルダーで MATLAB 関数を右クリックすると、[開く] をクリックします。このエラーが発生する確率は 80% です。ただし、コマンド ウィンドウで edit xxx.m と入力するだけです。その後、このエラーは発生しません。

ワークスペースから変数エディターに変数をドラッグすると、80% の確率でこのエラーが発生します。また、コマンドを使用して変数エディターで変数を表示する方法もわかりません。

また、このエラーが発生した場合は、MATLAB の電源をオフにし、マウスで何か操作を行って再度開くまで、常に発生します。たとえば、マウスで MATLAB 検索パスにパスを追加したり、マウスを使用してディレクトリを変更したりします。再度開くと、マウスを使用しているときにこの問題が発生する可能性が 80% になります。

他の誰かがこの種の問題を見たことがありますか? 私は Java について何も知りません。ありがとう。

4

2 に答える 2

2

この特定のエラーについて話すことはできませんが、このようなエラーは Matlab では非常に一般的です。これは、Matlab GUI (Java で記述) のバグによるものです。この場合、Mac 固有の [ファイルを開く] ダイアログ ボックスを開こうとして失敗したように見えます。次に、そのダイアログ ボックスの位置を取得しようとしましたが、正しく開かなかったため、エラーがスローされました。 . Java がエラーをスローすると、GUI はすべて混乱し、すべての操作でエラーをスローします。

あなたは自分自身を処理する方法を知っているようですが、次のようなエラーが発生するラボメイトに私が与える一般的なアドバイスは次のとおりです。これらのエラーメッセージは、特に最初のエラーをトリガーした後、クリックするたびにポップアップし続ける場合に、画面上で大きく見えて恐ろしいものになります。 、しかしパニックにならないでください。通常はまったく無害です。通常は動作する GUI から、またはsave temp.matほとんどの場合動作するコマンドを使用して、ワークスペースを静かに保存します。ワークスペースが保存されたら、Matlab を閉じてから、Matlab を再度開いて、GUI から、またはコマンドを使用して、ワークスペースを再度読み込みますload temp.mat。これで、Matlab セッションが再開され、データが失われることはありません。

于 2012-10-16T10:39:53.053 に答える
1

この問題は、使用している人々によって以前にも報告されていますMATLAB version R2012a on MAC

他のバージョンを使用してみてください。それ以外の場合は、TMW でバグ レポートを提出してください。

于 2012-10-16T09:28:03.710 に答える