Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Browser.evaluate()方法显示错误_Java_Javascript_Eclipse_Swt - Fatal编程技术网

Java Browser.evaluate()方法显示错误

Java Browser.evaluate()方法显示错误,java,javascript,eclipse,swt,Java,Javascript,Eclipse,Swt,我已经使用SWTAPI编写了一个简单的Java程序。我在应用程序中实例化了一个浏览器,并尝试使用browser.evaluate()方法。但它向我显示了以下错误 类型浏览器未定义方法求值(字符串) 这是我的完整程序 import java.awt.event.MouseEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.SWTError; import org.eclipse.swt.custom.

我已经使用SWTAPI编写了一个简单的Java程序。我在应用程序中实例化了一个浏览器,并尝试使用
browser.evaluate()
方法。但它向我显示了以下错误

类型浏览器未定义方法
求值(字符串)

这是我的完整程序

    import java.awt.event.MouseEvent;

    import org.eclipse.swt.SWT;
    import org.eclipse.swt.SWTError;
    import org.eclipse.swt.custom.CTabFolder;
    import org.eclipse.swt.custom.CTabItem;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.layout.*;
    import org.eclipse.swt.widgets.*;
    import org.eclipse.swt.browser.*;
    import org.eclipse.swt.printing.*;
    import org.eclipse.swt.events.*;



    public class example {

     public static void main(String args[])
     {
        final Display display = new Display();
        final Shell shell=new Shell(display);
        shell.setText("Informatica Business Glossary Desktop");

        final Browser browser = new Browser(shell,SWT.NONE);

        final String SCRIPT01 = "var html = \"\";"+
                "if (typeof window.getSelection != \"undefined\") {"+
                    "var sel = window.getSelection();"+
                    "if (sel.rangeCount) {"+
                        "var container = document.createElement(\"div\");"+
                        "for (var i = 0, len = sel.rangeCount; i < len; ++i) {"+
                            "container.appendChild(sel.getRangeAt(i).cloneContents());"+
                        "}"+
                        "html = container.innerHTML;"+
                    "}"+
                "} else if (typeof document.selection != \"undefined\") {"+
                    "if (document.selection.type == \"Text\") {"+
                        "html = document.selection.createRange().htmlText;"+
                    "}" +
                "}" +
                "return html";
        //final Browser browser;


    if(browser!=null)
{

    browser.setUrl("https://www.google.com");
}

        browser.addMouseListener(new MouseListener(){

            @Override
            public void mouseDoubleClick(org.eclipse.swt.events.MouseEvent e) {
                String selection = (String)browser .evaluate(SCRIPT01);
                // TODO Auto-generated method stub

            }

            @Override
            public void mouseDown(org.eclipse.swt.events.MouseEvent e) {

                // TODO Auto-generated method stub

            }

            @Override
            public void mouseUp(org.eclipse.swt.events.MouseEvent e) {
                String selection = (String) browser.evaluate(SCRIPT01);
                // TODO Auto-generated method stub

            }



        });
     }  
    }

我正在使用EclipseJuno浏览器类的
evaluate
方法的JavaDoc说它是为SWT版本3.5添加的,所以您至少需要该版本


Eclipse Luna的最新版本是

我没有得到任何错误。那么为什么只有我得到它呢?根据JavaDoc
evaluate
不在早期版本的
Browser
检查您是否有最新版本的SWT jar。具体来说,您需要SWT 3.5或更高版本(4.4是当前版本).我已经从这里下载了jar文件,这不是最新的吗?
String selection = (String) browser.evaluate(SCRIPT01);