如何在Swing中动态添加组件

如何在Swing中动态添加组件,第1张

完全可以动态加载组件。 你在button触发的事件里,加一个 System.out.println("abc")看看有没有执行。 还有,加JTree后,再执行一下 repaint()试试。

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

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存