目录

 

前言

一. SWT集成浏览器

二. SWT之外的尝试

1. JavaFX浏览器组件(WebView)

2. Jxbrowser

3. Jcef

三. 使用Jcef集成Chromium

1. 获取Jecf相关的jar包

2. 构建

总结


前言

    在工作中, 我们经常会开发一些Windows的桌面软件工具. 笔者使用的是编程语言是Java, 很自然就用了SWT/JFace这套框架进行开发. 实际跟Eclipse搭配使用起来是很爽的. 它可以在Eclipse进行UI界面编辑, 所见及所得, 大大提高了开发效率. 随着用户审美的提高, 大家已经不满足于只能显示表格类的可视化了, 要求要支持各种柱状图, 饼图, 曲线图等等. 显然, 在SWT/JFace框架上开发这个类图形显然有些吃力. 那么自然地就会想到用B/S架构来开发, 问题就在于工具软件在开发的时候, 需要调用一些本地地动态库(dll)去完成一些功能. 另一方面, 工具软件用B/S来开发显得有些重. 所以想法就此打住. 能不能内嵌个浏览器, 然后, 界面优化用前端那一套, 中间再做一个前端JS与Java交互数据的接口. 那么, 问题就可以得到很好的解决. 于是乎, 就这样入坑了...


一. SWT集成浏览器

关于SWT继承浏览器方面的内容. 可以到SWT FAQ看一下关于Browser部分. 我大概瞄了一眼, SWT支持4种样式的浏览器:

  1. SWT.NONE: 使用的是本地的渲染, 也就是IE 浏览器的内核, emmm...IE啊, 嗯, 果断不用
  2. SWT.WEBKIT: 使用的是WebKit, emmm, 也不用,要求用户安装Safari
  3. SWT.Mozilla: 需要装XULRunnner之类的驱动, 不幸的是,XULRunner已过时,Mozilla团队不再构建
  4. SWT.CHROMIUM: 从4.17版本开始, 就支持创建也非常简单, 而且用Chromium内核, 可以支持很多的前端框架. 笔者实际也写了demo, 需要使用JDK 8 64 bit 以上版本构建, 而且没有32 bit的版本, 因为SWT 从4.10开始就不支持32bit了, 感兴趣的可以关注我后面写一篇例子

emmm, 由于笔者需要用32bit的JDk去构建, 所以SWT的这个新特性就只能洒泪放弃了...

二. SWT之外的尝试

1. JavaFX浏览器组件(WebView)

这个东西想法很好, 起码JDK原生就支持, 但是遗憾的是它与GTK +版本存在一些兼容性问题, 由于它使用了旧版本的WebKitGTK, 它运行起来非常缓慢, 最简单的渲染Echart的曲线图, 都一卡一卡的, 让我一度想摔键盘

2. Jxbrowser

JxBrowser是一个让Java可以轻松集成Chrome浏览器的跨平台库, 确实好用, 但是收费. 可以**, 笔者尝试了6.21版本的**版, 好用是好用, 但一个电脑只供一个进程使用JxBrowser, 不能同时多个进程使用, 而且会偶尔出现不能使用. 内核加载也慢, 也可能是我程序的问题. 哎, 放弃...

3. Jcef

emmm, 笔者最终选择用它, 加载比较快, 而且可以支持32 bit JDK, 就它了!

三. 使用Jcef集成Chromium

1. 获取Jecf相关的jar包

关于如何获取jar包, 网上有很多教程, 大家可以参考这个: 比较简单的获取 JCEF 相关 jar 包的教程 非常详细的获取 JCEF 相关 jar 包的教程

2. 构建

基于IDEA构建的大家可以参考: 【java】本地客户端内嵌浏览器2 - chrome/chromium/cef/jcef

想一下, 可以去Echart官网看一下: https://echarts.apache.org/examples/zh/index.html

还在用SWT开发UI吗-用JCEF吧

这些图马上就可以支持了, 是不是很香?


总结

通过一系列的调研与尝试, 最终锁定了Jcef去集成Chromium, 然后使用各种前端框架去优化UI, 比如VUE, Echart等等, 下篇文章将使用Eclipse来构建, 期待一下吧

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-25
  • 2021-12-18
  • 2021-06-10
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-20
  • 2021-05-21
  • 2021-06-22
  • 2021-12-18
  • 2021-12-02
相关资源
相似解决方案