rt

解决方案 »

  1.   

    具体你用的WebBrowser是哪个?
    不过一般这种实现都会有个相应的接口.就像html的onload一样.比如SWT中的Browser中好像就有个addLocationListener和addProgressListener方法,你可以尝试一下.
      

  2.   

    final JWebBrowser webBrowser = new JWebBrowser(null);
    webBrowser.setBarsVisible(false);
    webBrowser.navigate(url);
    就是这样的 
      

  3.   

    你可真懒啊,给个JWebBrowser谁知道是什么?google了一下看到有个chrriis.dj.nativeswing.swtimpl.components.JWebBrowser的类,你看一下api:http://djproject.sourceforge.net/ns/documentation/javadoc/chrriis/dj/nativeswing/swtimpl/components/JWebBrowser.htmladdWebBrowserListener(WebBrowserListener listener) 方法.WebBrowserListener接口中有loadingProgressChanged(WebBrowserEvent e)和locationChanged(WebBrowserNavigationEvent e) 你试试呗.
      

  4.   

    关键是我不会啊  我对java不熟  我的目的就是
    这是c#的代码bool loading = true;   //该变量表示网页是否正在加载.
            string html = string.Empty;
            WebBrowser browser = new WebBrowser();        public void GetHtml(string[] urls)
            {            
                browser.Navigated += new WebBrowserNavigatedEventHandler(browser_Navigated);
                foreach (string url in urls)
                {
                    loading = true;  //表示正在加载
                      browser.Navigate(url);                while (loading)
                    {
                        Application.DoEvents();//等待本次加载完毕才执行下次循环.                }
                }
            }        void browser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
            {
                html = browser.DocumentText;  //获取到的html.            loading = false;//在加载完成后,将该变量置为false,下一次循环随即开始执行.
            }我想知道那红色的部分,用java怎么写?
      

  5.   

    如果你用的jdk1.5以上版本,是最省事的是使用Semaphore.final Semaphore holder = new Semaphore(0);
    browser.addWebBrowserListener(new WebBrowserListener (){
      loadingProgressChanged(WebBrowserEvent e){
    holder.release();
    }});for(int i=0;i< urls.length;i++){ browser.Navigate(url); try {
    holder.acquire();
    } catch(InterruptedException e) {
    e.printStackTrace();
    }
    }
      

  6.   

    另外,如果你只是为了获取网页内容.推荐用httpclient.