好的,經過多次測試並比較了不帶GUI的應用程序和帶GUI的應用程序之間的區別。我找到了解決我的問題的方法。
由於沒有GUI運行初始化從應用程序的啓動方法的應用程序(只有一個線程)
import matlabFunction.*;
public static void main(String[] args) {
matlabFunction test = new matlabFunction(); test.runFunction(1, lstABC.toArray());
}
但在我與GUI代碼我從運行的JFrame內的init方法( main()包含我的init代碼)這是在EDT內部
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
new main();
} catch (Exception p) {
}
}
});
}
錯誤發生在上面的方式來初始化matlab方法。但是如果我改變調用init方法的方式如下,錯誤就解決了。
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
matlabFunction test = new matlabFunction();
new main(test);
} catch (Exception p) {
}
}
});
}
所以,我相信我的問題的原因並沒有叫從「第一」線程啓動應用程序的init方法。
只是澄清......你有一個調用函數'modem.pskmod'的應用程序,*不使用GUI,並且工作正常。然後你有另一個應用程序,也調用函數'modem.pskmod',*使用圖形用戶界面,並不起作用(給你上述錯誤)。它是否正確? – gnovice 2010-01-20 18:28:55
是的,你是對的。 – 2010-01-21 02:29:49