java中循环执行WebBrowser.Navigate方法,怎样实现加载一个网页结束后再开始加载下一个 rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 具体你用的WebBrowser是哪个?不过一般这种实现都会有个相应的接口.就像html的onload一样.比如SWT中的Browser中好像就有个addLocationListener和addProgressListener方法,你可以尝试一下. final JWebBrowser webBrowser = new JWebBrowser(null);webBrowser.setBarsVisible(false);webBrowser.navigate(url);就是这样的 你可真懒啊,给个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) 你试试呗. 关键是我不会啊 我对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怎么写? 如果你用的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(); }} 另外,如果你只是为了获取网页内容.推荐用httpclient. 小弟初学java socket,想知道什么是长连接,什么是短连接。 急需 获取某月的天数的方法是什么?--------------急救! 小问一句 求助,JAVA下数据结构的汉诺塔小程序,已有基本代码! 输入一个日期判断是星期几,要判断输入的字符是否合法,输入一个或多个空格空格也有提示错误,然后请用户重新输入。 java中如何对焦点所在控件做操作 大家看看这个程序 那位大侠使用过java的media这个类 这java获取程序所在相对路径的方法在不同的启动方式下为和表现不一致? 一个懒惰匹配问题 java应用程序中怎么一步到位地插入中文(不用输入法实现)
不过一般这种实现都会有个相应的接口.就像html的onload一样.比如SWT中的Browser中好像就有个addLocationListener和addProgressListener方法,你可以尝试一下.
webBrowser.setBarsVisible(false);
webBrowser.navigate(url);
就是这样的
这是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怎么写?
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();
}
}