java软件开发到底是干什么的?
Java软件开发主要分三个方向:JAVASE、J***AME、J***AEE。 开发的一般是:j***aswing桌面应用程序,J***AEE(开发B/S系统)是主流。 一般说的J***A软件开发主要就是用J***A开发一系列的B/S系统,包括各种办公系统,各种网站,电力的监控系统,报表系统等等。 学j***a的话,一般都是要先学J***ASE(一切的基础),然后,就是一系列的东西需要学习,首先,必须了解servlet,JSP,然后就是要学习各种的框架。
j***a中装了swing拖拉界面,怎么样把我的代码变成界面显示?
你用的是eclipse吗?如果是的,确保插件安装成功,重启eclipse后,在你要打开的类上右键选择open with 然后就有WindowBuilder选项,选择即可,如图。
打开之后代码界面和拖拉界面切换如图。
其中点击Design就是拖拉界面,点击source就是代码界面。
为什么一提到j***a的swing和awt组件,大家都不建议学?
我说个旁的,
其实我是建议“面向对象”的新手学一学swing这种带可视效果的技术的。
不过如果是为了将来的工作,不建议投入过大精力学习,毕竟使用面太窄。
这个涉及到不同的编程语言有不同的特性,如C和C++虽然复杂,但是性能较好,适合于系统底层的开发,如操作系统、桌面应用和单片机等;而j***a利用JVM的性能,兼顾了编译和解析,具有更好的可移植性,更适合于web应用和手机移动应用,开发桌面应用在性能上不如C和C++。而解释性语言的代表python,简单易学,开发效率高,但是性能较低,目前广泛应用于web程序开发,而较少应用于纯桌面应用程序开发。
因此,我们应该有一个认知就是编程语言是一种工具,每一个工具都会有优劣,工欲善其事必先利其器,我们要充分发挥不同工具的特点,才能很好地驾驭不同的技术。学习则是需要有针对性,在特定的应用场景下,使用合适的技术,而不能只靠一种技术运用到所有的应用场景中。
早期的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([_a***_])、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接口等等。
是没有啥客户端软件用swing/awt了,不过也有,比如著名的intellij idea就是,看你自己了,站在学习的角度,多学点东西自然没有坏处,不过站在工作的角度,的确不太可能用到,现在的j***a应该主要还是服务端了。
而且就算要用j***a写客户端软件,你也可以考虑j***afx,这也是j***a中用于替代swing的下一代产品,也是包含在jdk中的
swing的缺点的话,界面表示,处理逻辑,数据都耦合在一起应该算一个,就像把前端的js,html和数据放在一起,业务复杂点,用这个弄起来复杂度就会直线上升。j***afx已经可以分离处理逻辑和界面显示了,相对好一点,毕竟下一代嘛