大家好,今天小编关注到一个有意思的话题,就是关于java语言swing的问题,于是小编就整理了3个相关介绍Java语言swing的解答,让我们一起看看吧。
j***a有没有CS架构的框架?
大家都知道,软件有CS架构和BS架构两种,而且对于两种架构的优劣各有说法,对于目前使用排名第一的j***a语言,普遍影响都是开发web程序的,其实j***a也可以开发出类CS架构的程序。
1.C/S
2.C/S
3.作为现在主流的开发语言j***a,主要应用是进行web开发,那么可以不可以使用j***a语言,但是能照顾部分C/S架构的有点呢,这里给大家介绍一种技术方案,那就是使用jxbrowser。
4.jxbrowser
J***a写GUI用swing还是J***aFX呢?
学校里,大部分学的还是swing和awt,学校里面教授的,基本偏老旧,至于企业,就不知道了,基本上用j***a写的,大多是网站,后端等,用j***a写gui的感觉比较少见。
为什么一提到j***a的swing和awt组件,大家都不建议学?
桌面应用领域不是j***a所擅长的
在桌面应用领域,主流还是C++,C++有很多的图形界面框架,比如大名鼎鼎的QT,比如落伍的MFC,比如GTK+。
我见过很多公司还在使用MFC,界面非常难看,不过做一些设置软件已经足够了。
也看过很多的公司用QT开发过一些比较好看的桌面应用,不过最后很多都转到了B/S模式。
在手机端,原生应用非常火,但是在桌面应用领域却很少有客户需要开发桌面应用。
一方面是每次更新了应用,客户都需要手动更新,很多用户都不愿意进行更新操作。
另一方面是运维人员,很多的运维维护人员都很痛恨更新客户端,更新客户端经常会有各种莫名其妙的问题的,做过运维的朋友一定明白我的说法,所以经常给用户灌输B/S模式优于C/S模式。
但不管怎么样,C/S模式在国内一点都不流行,我已经见过不少的升级项目就是为了转向B/S。
这个涉及到不同的编程语言有不同的特性,如C和C++虽然复杂,但是性能较好,适合于系统底层的开发,如操作系统、桌面应用和单片机等;而j***a利用JVM的性能,兼顾了编译和解析,具有更好的可移植性,更适合于web应用和手机移动应用,开发桌面应用在性能上不如C和C++。而解释性语言的代表python,简单易学,开发效率高,但是性能较低,目前广泛应用于web程序开发,而较少应用于纯桌面应用程序开发。
因此,我们应该有一个认知就是编程语言是一种工具,每一个工具都会有优劣,工欲善其事必先利其器,我们要充分发挥不同工具的特点,才能很好地驾驭不同的技术。学习则是需要有针对性,在特定的应用场景下,使用合适的技术,而不能只靠一种技术运用到所有的应用场景中。
底层工具
如果需要使用j***a做底层工具,例如eclipse J***a开发工具,可以去学习swing和awt这个是底层工具的基础,后续延伸为OSGI和RPC(基础eclipse的插件开发)和jface也是工具开发
面向应用
现在j***a基本都是web开发,前期通过J2ee完成j***a开发,但是前后端分离后基本就淘汰了,现在前后端分离,j***a基于服务编程,提供服务接口能力给前端调用。
是没有啥客户端软件用swing/awt了,不过也有,比如著名的intellij idea就是,看你自己了,站在学习的角度,多学点东西自然没有坏处,不过站在工作的角度,的确不太可能用到,现在的j***a应该主要还是服务端了。
而且就算要用j***a写客户端软件,你也可以考虑j***afx,这也是j***a中用于替代swing的下一代产品,也是包含在jdk中的
swing的缺点的话,界面表示,处理逻辑,数据都耦合在一起应该算一个,就像把前端的js,[_a***_]和数据放在一起,业务复杂点,用这个弄起来复杂度就会直线上升。j***afx已经可以分离处理逻辑和界面显示了,相对好一点,毕竟下一代嘛
早期的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不依赖于本地操作系统,所以在样式上能够进行统一。在写法上***用了在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的3点解答对大家有用。