您的位置:首页 > 编程语言 > Java开发

关于JDIC超链接打开窗口问题的解决方案

2013-01-22 12:45 357 查看
JDIC这个web brower用了一下,功能还算是可以,不过,有BUG,网上又找版本只有0.9.5这个版本,就将就用了一下,小程序了,

运行以后发觉,某些会弹窗口的超链接,就会打开窗口,妈的,我就花了N多力气去网上找资料,网上的资料从来没有一个人说实话,也没有一个好像是高手,气得我直跺脚,又是只能自己解决,每次都这样,也不知道是不是大家就这样,还是水平好的人,不展示一下。

实在是气不过,于是写个出来以后有和一样的朋友,不会这么辛苦。

先找到资料可以阻止窗口打开的方法

重新写webbrower这个类中的两个方法

protected boolean willOpenURL(URL arg0) {

                return super.willOpenURL(arg0);

            }

            protected boolean willOpenWindow(){

             

                return false;

            }

第一个方法是跳转,第二个就是将要打开窗口前的验证,

于是我想如何才能得到这个打开前的地址,可是这里根本无法得到,于是我用方法getURL(),当在willOpenWindow中放入getURL时,窗口又重新弹出,于是我明白了,这个方法一定是willOpenWindow之后调用的,无计可施了,只用其它的招数,

这个WEBBROWER里有一个监听,我想找找资料有没有对超链接进行监听的,可是找了N久也没有

只用对整个WEBBROWER这个进行监听,监听的有文档完成、下载开始、下载结束、还有状态栏变化、

根本就没有超链接的处理

最终是根本无法处理,最后想了一个招,把状态的地址链接拿过来

然后进行分析,是否是地址,如果是地址,就在willOpenWindow中把这个地址set到这个浏览器里

public void statusTextChange(WebBrowserEvent arg0) {

                // TODO Auto-generated method stub

                if(!arg0.getData().equals("完成")){

                    try {

                        browerUrl = new URL(arg0.getData());

                    } catch (MalformedURLException e) {

                        browerUrl = null;

                    }

                }

            }

protected boolean willOpenWindow(){

                brower.setURL(browerUrl);

                return false;

            }

复制出代码,希望大家也能顺利解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JDIC JAVA
相关文章推荐