我越来越可怕的新的可运行...爪哇 - 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