我越來越可怕的新的可運行...爪哇 - SWT - 在點擊提交按鈕
Exception in thread "Controller Thread" org.eclipse.swt.SWTException: Invalid thread access
的什麼,我試圖完成快速概述:
我有一個監聽器提交按鈕,我想開始一個新的線程,由於應用程序將處理各種url的處理量。
這是提交按鈕收聽我的代碼部分...
submitButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
try {
// Check to see if http field is valid
httpValid = checkHttp(http);
if (httpValid) {
Thread t = new Thread(new UIMain(), "Controller Thread");
t.start();
} else {
System.out.println("Not a Valid http");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
這是我跑法...
public void run() {
options = new Options();
setOptions(options);
Controller run = new Controller(options);
}
錯誤點到線「setOptions(選項) 「 選項是一個對象,其中包含用戶將輸入的SWF字段中的一些數據。 setOptions非常直觀,在該函數中,我從SWF字段收集數據,並將它們設置在對象中。
讓我知道如果我需要張貼任何代碼...的一些代碼,我做的setOptions(選項)
例...
String url = http.getText();
options.addUrl(url);
感謝,
是UIMain()的GUI? – Thomas 2012-03-19 17:20:30
是的,這是一個SWT GUI窗口 – Whnunlife 2012-03-19 17:21:20
然後錯誤就是它說的。你已經有一個GUI線程(被按下的按鈕),並且你正在產生一個新的線程,這是一個GUI窗口。這是swt明確不允許的。在處理gui對象時,你產生的線程必須使用Display.asyncExec()或syncExec()。 – Thomas 2012-03-19 17:28:55