第30篇:swing组件添加javafx的webview浏览器组件方法

a75492ead23ddbae42c76f076ea16218.png

 Part1 前言 

Swing是一个用于开发java图形界面程序的工具包,一直用着挺顺手的,美中不足就是没有好用的浏览器组件,只能引用第三方jar包,比如说JxBrowser、DJ Native Swing等,但是都不能满足我的需要。javafx中的webview浏览器组件非常好用,又是jdk官方出品的,非常稳定。目前看来拖拽swing组件最好用的工具应该是netbeans,可惜netbeans不支持拖拽webview这个图形控件。后续经过一系列测试,找到了一个简单的在netbeans拖拽图形控件的同时,实现swing调用webview组件的简单方法,而且代码量很少。

 Part2 技术研究过程 

  • Swing浏览器组件踩过的坑

先讲一下用Swing引用第三方jar包开发浏览器踩过的坑,大家可以参考一下。

 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

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

58245b9228be101b8fed7010d1286ce4.png

javafx组件是Jdk1.8中自带的,经过不断测试,发现还是jdk官方自带的组件好用,非常稳定,没有任何报错,编写起来还简单。至此一直困扰我的swing浏览器组件编写问题完美解决!

d2efb0c4e295e536ab525edac72ada12.png

专注于网络安全技术分享,包括红队、蓝队溯源、渗透测试、代码审计等

每周一篇,99%原创,敬请关注

d9876bf527cb5da7454eb5141f9ea84d.jpeg

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希潭实验室

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值