从HttpServlet启动SWT小部件

时间:2013-06-26 13:06:47

标签: java java-ee swt

出于一些奇怪的原因,我需要从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();

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我不想知道这个奇怪的原因,同时我无法提醒您在SWT中打开Servlet窗口时可能遇到的问题,但问题是您是否正在访问来自原生SWT的{​​{1}}小部件,这些小部件将无效。

  

您只能在Thread上访问SWT

此外,您还没有屏蔽UI Thread

PFB解决问题的代码

UI Thread