大家好,今天小编关注到一个比较有意思的话题,就是关于java语言及swing技术的问题,于是小编就整理了2个相关介绍Java语言及swing技术的解答,让我们一起看看吧。
J***a写GUI用swing还是J***aFX呢?
在 J***a 中,你可以使用两种不同的技术来创建图形用户界面:Swing 和 J***aFX。
Swing 是 J***a 的一个图形用户界面(GUI)工具包,它是基于纯 J***a 实现的。它是 J***a 的默认 GUI 工具包,并且在 J***a SE 中自带。Swing 组件具有跨平台的能力,可以在 Windows、Mac 和 Linux 等操作系统上运行。
J***aFX 是 Oracle 公司开发的基于 J***a 的图形用户界面(GUI)技术。它是 J***a SE 的一部分,从 J***a SE 8 开始就可以使用。J***aFX 使用基于 FXML 的布局方式,可以使用脚本语言创建动画效果。J***aFX 还支持 3D 图形和媒体播放。
两者之间的主要区别在于,Swing 是基于纯 J***a 实现的,而 J***aFX 是基于 FXML 的布局方式实现的。在选择使用哪种技术时,你需要考虑自己的项目需求和个人喜好。如果你想要使用纯 J***a 实现 GUI,那么可以使用 Swing;如果你想要创建动画效果并支持 3D 图形和媒体播放,那么可以使用 J***aFX。
不建议使用直接使用J***a原生api做界面,尤其是swing,因为J***a基本抛弃了桌面场景,费力不讨好,界面可以交给QT。同时在新版jdk中富客户端场景交给了j***aFx,并且脱离了SE。如果一定要用,就用j***aFx吧,虽然Oracle也不怎么待见这玩意儿。
我用j***afx两年了,建议你用electron。j***afx坑很多,遇到大数据渲染的时候自带控件卡的批爆。我做这玩意儿造了不少轮子才进行的下去。后来用h5重新实现了一下,效率那是天壤之别。性能在肉眼上也没有差别,更主要的是h5我还没有优化过,而j***afx我是花了大力气才优化到比较流畅的程度的。
其他人问我用j***a开发桌面,我都直接让他就此打住。程序员职业生涯短暂,保不齐下一秒就猝死了。还是多留点时间陪伴家人吧
swing控件最丰富,重写也最方便,但性能较差。j***afx没用过,还有一个swt,虽然控件没swing丰富,但性能是最接近native的,而且它还有个兄弟rwt,api和swt基本一致,可是rwt可是直接在浏览器里跑的
j***afx有一个现成的gui框架,网上有很多教程或者旧书上会介绍swing和awt之类的,但是他们都是过时的老古董了,新人入门的话,j***afx是一个非常好的选择,它也支持XML格式描述界面,甚至可以直接用css来设定界面样式,而且还是跨平台的哦
为什么一提到j***a的swing和awt组件,大家都不建议学?
早期的j***a主要是应用在web开发方面,所以从实用的角度出发,确实可以略过AWT和Swing的学习。在移动端开发流行之后,AWT和Swing又成为一个必修的内容了,因为做Android开发如果有一定的AWT基础是比较好的,很多概念是统一的。
为了描述这个问题,我们首先要了解到底什么是AWT,什么是Swing,以及它们与Android开发有什么联系。
j***a语言第一个支持图形界面开发的API就是AWT,在AWT中定义了j***a图形界面的很多核心概念,所以要了解j***a的图形界面开发方式一定要从了解AWT开始。下面分别介绍一下AWT中的三个核心概念:容器、组件、布局。
图形容器是存放图形元素的场所和环境,j***a中把容器分为顶级容器和次顶级容器。顶级容器可以单独显示、次顶级容器不能单独显示。顶级容器的代表是Frame,次顶级容器的代表是Panel。
图形组件是具体的图形应用元素,比如Button(按钮)、TextField(文本框)、Label(标签)、Choice(下拉列表)等等,每一个图形组件代表一种具体的图形应用元素。
布局的作用是安排图形组件在容器中的排列样式,常见的布局方式有BorderLayout、FlowLayout和GridLayout等。其中BorderLayout是Frame的默认布局管理器,FlowLayout是Panel的默认布局管理器。
具体的图形开发根据不同的界面设计***用不同的容器、布局和组件进行搭配,复杂的图形组件遵循顶级容器嵌套次顶级容器的方式来完成。
Swing与AWT相比较最大的优点是轻量级方式,Swing不依赖于本地操作[_a***_],所以在样式上能够进行统一。在写法上***用了在AWT的类名基础上增加一个大写的J字符,比如在AWT中的Frame改为JFrame,Button改为JButton等等。
在实际的开发中比较推荐使用Swing的方式,一个原因是Swing的组件在外观上更具备科技感,另一个原因是它占用的***较AWT更少。
说到AWT和Swing一定要说一下图形组件的***处理方式,J***a中的***处理方式***用了监听的方式,也可以称为“代理”的方式。***处理类通过实现具体的接口来完成对应的***处理,比如ActionEvent对应的ActionListener接口;KeyEvent对应的KeyListener接口;MouseEvent对应的MouseListener接口和MouseMotionListener接口;WindowEvent对应的WindowListener接口等等。
到此,以上就是小编对于j***a语言及swing技术的问题就介绍到这了,希望介绍关于j***a语言及swing技术的2点解答对大家有用。