swing如何加载webview

swing如何加载webview,第1张

1 JEditorPane这个组件是swing工具包中自带的,但是它能解析的html及css非常有限,N年没更新了,很多现在的网页,加载会出问题。

2 DJ Native Swing这个效果也不错,我捣鼓了半天,就是使用起来很麻烦,它的很多功能不符合我的预期,没办法在netbeans中拖拽使用

3 JxBrowser这个浏览器组件非常好用,但它是商业版的,网上已有破解方法。缺点就是,这个组件长时间不 *** 作,会莫名其妙地卡死,偶尔还会报各种channel异常错误,我始终没解决这个问题,而且所依赖的jar太大,大概100多M。

Swing与Javafx的对比

在Swing图形工具包中,JFrame是一个顶层容器,JPanel是一个中间容器,JPanel上面可以放置各种Button按钮、Label标签等图形控件。有一个很形象的比喻,JFrame是一张桌子,各个组件是一盘又一盘的菜,而JPanel就是一个托盘,装了选好的菜品(组件)后放到JFrame桌子上。一个JFrame界面上可以有多个JPanel用来划分不同的区域。

在Javafx中,顶级容器是舞台Stage,也就是软件的界面窗口;Scene场景为中间容器,各种组件Button、Label成为Node节点,Node节点必须放在Scene场景中。

Swing添加Javafx的webview组件

Netbeans没法拖拽JFXPanel,那么我们可以这样,在JFrame上先放一个JPanel,然后手动敲代码在JPanel上添加一个JFXPanel,JFXPanel上放一个scene场景,在其上面放一个Javafx的webview组件,具体看如下 *** 作:

JFrame-->JPanel-->JFXPanel-->scene-->webview,需要手写的代码量很少。具体 *** 作如下:

1. netbeans拖拽画出一个JFrame窗口。

2. 在JFrame图形界面上,想要实现浏览器组件的位置放一个JPanel。

0d2948bc3de3cdeb518b92f4e3313ed2.png

3. 手动敲代码,在JPanel上面放置一个JFXpanel,然后载入一个场景。

4. 手动敲代码,在JFXPanel上放置一个webview控件。

613f757c51996c6beff242858adce564.png

如下图所示,浏览器稳定运行。

可以到官方网站上下载相应的包,下面大致说明一下如何运用它的三方包,实现在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)

Java Swing做不到,swing只能显示有限的标签,javascript的支持更是无从谈起.如果非要JFrame,即Java CS下只能靠Java FX实现,将Java FX的组件嵌入进去就可以了,几句话的事(不过仅支持jdk1.6及以上)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11694054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存