在SWING中加了一个浏览器,现在想遍历一些网址提取内容,部分代码如下:
for(int i = 0;i < url.length(); i++){
Browser.webBrowser.setURL(new URL("url[i]));
//Browser.statusBar.lblStatus这个是浏览器的状态栏
while(!Browser.statusBar.lblStatus.getText().equals("Document loading completed.")){
}
content = Browser.webBrowser.getContent();//提取内容
}
可是这样无法得到内容,CPU还一直占用100%,到底怎样才能在网页内容全部下载完毕后提取内容啊,是不是要开2个线程啊,各位高手帮帮忙啊,谢谢!分不够再给...头疼中..........
for(int i = 0;i < url.length(); i++){
Browser.webBrowser.setURL(new URL("url[i]));
//Browser.statusBar.lblStatus这个是浏览器的状态栏
while(!Browser.statusBar.lblStatus.getText().equals("Document loading completed.")){
}
content = Browser.webBrowser.getContent();//提取内容
}
可是这样无法得到内容,CPU还一直占用100%,到底怎样才能在网页内容全部下载完毕后提取内容啊,是不是要开2个线程啊,各位高手帮帮忙啊,谢谢!分不够再给...头疼中..........
webBrowser.addWebBrowserListener(new WebBrowserListener() {
public void downloadStarted(WebBrowserEvent event) {
updateStatusInfo("Loading started.");
} public void downloadCompleted(WebBrowserEvent event) {
jBackButton.setEnabled(webBrowser.isBackEnabled());
jForwardButton.setEnabled(webBrowser.isForwardEnabled()); updateStatusInfo("Loading completed."); URL currentUrl = webBrowser.getURL(); if (currentUrl != null) {
jAddressTextField.setText(currentUrl.toString());
}
}
。。
webBrowser.addWebBrowserListener(new WebBrowserListener() {
public void downloadCompleted(WebBrowserEvent event) {
jBackButton.setEnabled(webBrowser.isBackEnabled());
jForwardButton.setEnabled(webBrowser.isForwardEnabled()); updateStatusInfo("Loading completed."); URL currentUrl = webBrowser.getURL(); if (currentUrl != null) {
jAddressTextField.setText(currentUrl.toString());
}
} public void documentCompleted(WebBrowserEvent event) {
updateStatusInfo("Document loading completed.");
}
//上面的downloadCompleted()和下面的documentCompleted()方法一个是在下载操作完成、中断或失败时调用,另一个是在文档加载完成时调用。它们的先后顺序是怎样的呢?是不是先download页面内容后然后在加载页面内容?!那我是不是可以直接在downloadCompleted()方法里得到webBrowser.getContent()呢?
的时候一直在运行,没法往下跑,请问有什么办法解决吗?