出于一些奇怪的原因,我需要从servlet打开swt对话框。这甚至可能吗? 目前我有这个,但得到“无效的线程访问错误”。到目前为止,我正在这样做。
Thread th=new Thread(new Runnable(){
@Override
public void run() {
Shell shell = new Shell();
FileDialog dialog=new FileDialog(shell);
dialog.setText("Enter a filename");
dialog.setFilterPath("c:\\");
String selected=dialog.open();
log.error(selected);
shell.dispose();
}
});
th.start();
有什么想法吗?
答案 0 :(得分:2)
我不想知道这个奇怪的原因,同时我无法提醒您在SWT
中打开Servlet
窗口时可能遇到的问题,但问题是您是否正在访问来自原生SWT
的{{1}}小部件,这些小部件将无效。
您只能在
Thread
上访问SWT
。
此外,您还没有屏蔽UI Thread
。
PFB解决问题的代码
UI Thread