JWebBrowser如何获取窗口单点事件
用JWebBrowser打开一个链接,然后在窗口中单点打开一个新窗口,新窗口不是全屏的,全屏之后后有部分被遮挡需要手动刷新一次才好。有没有办法是新窗口直接全屏。或者我能获取第一次打开窗口中的单点事件(现在不能获取到第一个页面中的操作事件)
用JWebBrowser打开一个链接代码:
String title = vo.getSssxmc();
this.setTitle(title);
if (StringUtils.isNotBlank(url)) {
this.action = vo.getGnid();
this.obj = obj;
webBrowser = new JWebBrowser();
webBrowser.setBarsVisible(false);
webBrowser.setBounds(0, 0, 0, 0);
webBrowser.setPreferredSize(new Dimension(800, 700));
webBrowser.addWebBrowserListener(new WebBrowserAdapter() {
public void loadingProgressChanged(WebBrowserEvent e) {
if (e.getWebBrowser().getLoadingProgress() == 100) {
logger.info("页面装载完毕!");
CardLayout cd = (CardLayout) WbWebFrame.this
.getContentPane().getLayout();
cd.show(WbWebFrame.this.getContentPane(),
"webbrowser");
logger.info("connectDzswjByUrl 页面加载结束 ");
}
}
public void windowClosing(
WebBrowserEvent webbrowserevent) {
WbWebFrame.this.dispose();
}
// 监听js事件
public void commandReceived(WebBrowserCommandEvent e) {
String command = e.getCommand();
Object[] parameters = e.getParameters();
logger.info("CommandReceived: param:"
+ Arrays.toString(parameters));
if (parameters != null && parameters.length > 0) {
WsWbEnter.enterWsWB(WbWebFrame.this, command,
parameters);
}
}
@Override
public void locationChanged(WebBrowserNavigationEvent e) {
String urlStr=e.getWebBrowser().getResourceLocation();
if(urlStr!=null&&urlStr.contains("etax/login.html"))
{
logger.error("链接超时,提示用户重新登录!");
WbWebFrame.this.setVisible(false);
WbWebFrame.this.dispose();
JCMessageBox.createInformationMessageBox(EtpApp.etpApp.getMainFrame(),"提醒","该功能已超时,请重新登录客户端!").open();
return;
}
}
});
webBrowser.navigate(url);
this.add(webBrowser, "webbrowser");
} else {
loadlb.setIcon(null);
loadlb.setText("获取链接地址失败!");
}