如何在Swing中嵌入浏览器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Swing中嵌入浏览器相关的知识,希望对你有一定的参考价值。
参考技术A 可以到官方网站上下载相应的包,下面大致说明一下如何运用它的三方包,实现在Swing中嵌入浏览器。 该文章只说明Swing中嵌入浏览器这一个问题,解决该问题需要3个第三方库文件,jdic.jar、jdic.dll、IeEmbed.exe. jdic.jar是Java程序需要引入的第三方库,并且将jdic.dll、IeEmbed.exe拷到系统变量classpath或是操作系统system32下即可。 System.loadLibrary("jdic");BrowserEngineManager bem = BrowserEngineManager.instance();bem.setActiveEngine(BrowserEngineManager.IE);IBrowserEngine be = bem.getActiveEngine();WebBrowser browser = be.getWebBrowser();browser.setURL(url);JFrame f = new JFrame();f.setTitle("Swing浏览器");CentreInWindows.fullscreen(f);f.getContentPane().add(browser.asComponent());f.setVisible(true);如何在 Swing jframe 中嵌入 SWT 浏览器
【中文标题】如何在 Swing jframe 中嵌入 SWT 浏览器【英文标题】:how to embed SWT browser in swing jframe 【发布时间】:2014-09-07 02:00:04 【问题描述】:我想将我的 SWT 浏览器嵌入到 swing jframe 中。 我尝试sample,但它需要调整窗口大小以加载浏览器窗口。 在不调整大小的情况下如何重新绘制画布?
【问题讨论】:
为什么要这样做?有什么要求?为什么不使用任何 Swing 替代品? 我想在我的 java 桌面应用程序中加载我的 html 页面并在其上执行我的 javascript 代码。我找到了一个浏览器类,它很好,但它在调用它的 jframe 后面,而且在浏览器窗口打开时我不能在其他打开的 jframe 中做任何事情 那么为什么不使用任何 Swing 替代品呢? 您推荐哪些替代品? ***.com/questions/145863/… 【参考方案1】:这是一个关于 GIT 的工作示例,展示了如何将 SWT 嵌入到传统的 Swing JPanel 中: https://gist.github.com/caprica/6890618(文字版:here)
诀窍是创建一个链接到 SWT shell 的java.awt.Canvas
。这个画布可以添加到任何传统的 Swing 组件中。 SWT shell 循环由单独的线程管理。
这是我使用 Java 7 的 Windows 7 机器上的屏幕截图:
【讨论】:
djbrowser 我认为这是一个更好的解决方案,它包装了 swt 的东西,代码变得可读和可管理。您不必处理 SWT shell 等。 @benchpresser 你能在回复中发布一些示例代码吗? 该示例确实适用于带有 Java6 的 Windows 7,但与提到的 OP 相同的问题发生了。您必须在任何内容可见之前调整框架的大小以上是关于如何在Swing中嵌入浏览器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Java Swing 应用程序中嵌入 QWebView (QtJambi)?
Java SWing中如何通过双击使子对话框从父窗口中弹出并嵌入到父窗口中?