java webbrowser应该如何销毁dispose有问题

diehappy 2017-01-29 09:46:57
主窗体有一系列菜单,点击一个菜单弹出一个JFrame对象,在此窗体内嵌入一个webbrowser,如果将JFrame设置为DISPOSE_ON_CLOSE后主窗体的菜单失灵都不能点击;如果将JFrame关闭设置为setVisible(false),则点击菜单重新打开JFrame对象,浏览器内容不能正常显示。。。求助!!!
...全文
209 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
diehappy 2017-02-04
  • 打赏
  • 举报
回复
引用 3 楼 hanpoyangtitan 的回复:
[quote=引用 2 楼 diehappy 的回复:] [quote=引用 1 楼 hanpoyangtitan 的回复:] 你放到一个线程里了?
在mainframe.java里菜单点击事件 private void jMenuItem_RouteMapActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: JFrame frm_RouteMap = new RouteMap("RouteMap"); frm_RouteMap.setVisible(true); } 在RouteMap.java里: public class RouteMap extends JFrame{ private WebBrowser webBrowser; private final String url= "http://localhost:8080/XXXX/RealMap.jsp"; public RouteMap(String name) { super(name); initializeMapFrame(); // this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);这句注释掉就是再次点击菜单浏览器没有任何显示,要是增加了就是窗体关闭了其它菜单项不能点击了。。。 } private void initializeMapFrame() { webBrowser = new WebBrowser(); try{ webBrowser.setURL(new URL(url)); }catch(MalformedURLException e){ return; } this.add(webBrowser, BorderLayout.CENTER); this.pack(); this.setExtendedState(JFrame.MAXIMIZED_BOTH); } }[/quote] EventQueue.invokeLater(new Runnable() { public void run() { try { //LoginWindow window = new LoginWindow(); //window.frame.setVisible(true); JFrame frm_RouteMap = new RouteMap("RouteMap"); frm_RouteMap.setVisible(true); } catch (Exception e) { log.error("new RouteMap error", e); } } });[/quote] 没有异常抛出。
什么都不能 2017-01-31
  • 打赏
  • 举报
回复
引用 2 楼 diehappy 的回复:
[quote=引用 1 楼 hanpoyangtitan 的回复:] 你放到一个线程里了?
在mainframe.java里菜单点击事件 private void jMenuItem_RouteMapActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: JFrame frm_RouteMap = new RouteMap("RouteMap"); frm_RouteMap.setVisible(true); } 在RouteMap.java里: public class RouteMap extends JFrame{ private WebBrowser webBrowser; private final String url= "http://localhost:8080/XXXX/RealMap.jsp"; public RouteMap(String name) { super(name); initializeMapFrame(); // this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);这句注释掉就是再次点击菜单浏览器没有任何显示,要是增加了就是窗体关闭了其它菜单项不能点击了。。。 } private void initializeMapFrame() { webBrowser = new WebBrowser(); try{ webBrowser.setURL(new URL(url)); }catch(MalformedURLException e){ return; } this.add(webBrowser, BorderLayout.CENTER); this.pack(); this.setExtendedState(JFrame.MAXIMIZED_BOTH); } }[/quote] EventQueue.invokeLater(new Runnable() { public void run() { try { //LoginWindow window = new LoginWindow(); //window.frame.setVisible(true); JFrame frm_RouteMap = new RouteMap("RouteMap"); frm_RouteMap.setVisible(true); } catch (Exception e) { log.error("new RouteMap error", e); } } });
diehappy 2017-01-31
  • 打赏
  • 举报
回复
引用 1 楼 hanpoyangtitan 的回复:
你放到一个线程里了?
在mainframe.java里菜单点击事件 private void jMenuItem_RouteMapActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: JFrame frm_RouteMap = new RouteMap("RouteMap"); frm_RouteMap.setVisible(true); } 在RouteMap.java里: public class RouteMap extends JFrame{ private WebBrowser webBrowser; private final String url= "http://localhost:8080/XXXX/RealMap.jsp"; public RouteMap(String name) { super(name); initializeMapFrame(); // this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);这句注释掉就是再次点击菜单浏览器没有任何显示,要是增加了就是窗体关闭了其它菜单项不能点击了。。。 } private void initializeMapFrame() { webBrowser = new WebBrowser(); try{ webBrowser.setURL(new URL(url)); }catch(MalformedURLException e){ return; } this.add(webBrowser, BorderLayout.CENTER); this.pack(); this.setExtendedState(JFrame.MAXIMIZED_BOTH); } }
什么都不能 2017-01-30
  • 打赏
  • 举报
回复
你放到一个线程里了?

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧