老Java程序员谈谈swing要不要学

老Java程序员谈谈Swing要不要学

老java程序员谈谈要不要学swing

Swing是什么?

1)AWT

在早期JDK1.0发布时,Sun公司就为GUI开发提供了一套基础类库,这套类库被称为AWT(Abstract Window Toolkit),即抽象窗口工具包。AWT的起初设想就是为了统一实现不同操作系统的图像界面,但问题是,不同操作系统图形库的功能可能不一样(比如按钮,在不同系统的就表现不一样),在一个平台上存在的功能在另外一个平台上则可能不存在,为此AWT不得不通过牺牲功能来实现平台无关性。不仅如此,AWT还是一个重量级组件,使用比较麻烦,且设计出的图形界面不够美观功能也非常有限。为此,Sun公司对AWT进行改进,提出了Swing组件,提供了更加丰富的组件和功能,来满足GUI设计的一切需求。

2)Swing

Swing是一个用于开发Java应用程序用户界面的开发工具包。使用 Swing 来开发图形界面比 AWT 更加优秀,因为 Swing 是一种轻量级组件,它采用纯 Java 实现,不再依赖于本地平台的图形界面,所以可以在所有平台上保持相同的运行效果,对跨平台支持比较出色。除此之外,Swing 提供了比 AWT 更多的图形界面组件,Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

为了和 AWT 组件区分,Swing 组件在javax.swing.*包下,类名均以 J 开头,例如: JFrame、JLabel、JButton等,而在AWT中叫Frame、Label等。

Swing能够干什么?

1)做系统,比如医院的软件。

2)做各种小游戏,提升逼格。

3)Intellij IDEA就是java swing开发的

4)毕业设计用的挺多。

 

Swing容器

Swing 中容器可以分为两类:顶层容器和中间容器,容器类都是继承自 Container 类。

顶层容器:

是进行图形编程的基础,一切图形化的东西都必须包括在顶层容器中。Swing中有三种顶层容器,分别是JFrame、JDialog 和 JApplet。

中间容器:

是容器组件的一种,也可以承载其他组件,但中间容器不能独立显示,必须依附于其他的顶层容器。常见的中间容器有 JPanel、JScrollPane、JTabbedPane 和 JToolBar。

 

Swing布局

1)FlowLayout(流式布局)

流式布局管理器:按水平方向依次排列放置组件,排满一行,换下一行继续排列。

2)GridLayout(网格布局)

网格布局管理器:按指定行列数分隔出若干网格,每一个网格按顺序放置一个控件。

3)GridBagLayout(网格袋布局)

网格袋布局管理器:每个组件可占用一个或多个网格,可将组件垂直、水平或沿它们的基线对齐。

4)BoxLayout(箱式布局)

箱式布局管理器:它把若干组件按水平或垂直方向依次排列放置。

5)GroupLayout(分组布局)

分组布局管理器:将组件按层次分组(串行 或 并行),分别确定 组件组 在 水平 和 垂直 方向上的位置。

6)CardLayout(卡片布局)

卡片布局管理器:它将容器中的每个组件看作一张卡片,一次只能看到一张卡片,其他卡片被遮住。

7)BorderLayout(边界布局)

边界布局管理器:它把 Container 按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。

8)SpringLayout(弹性布局)

弹性布局管理器:通过定义组件四条边的坐标位置来实现布局。

9)null(空布局)

空布局:也叫绝对布局,通过设置组件的坐标和宽高来布置组件。

 

看起来有很多是不是很吓人,其实不然,我们主要掌握以下4种

1、边界布局(BorderLayout)

2、流式布局(FlowLayout)

3、网格布局(GridLayout)

4、null(空布局)

 

Swing常用组件

组件名称定义
JButton按钮,可以设置背景图片或文字
JCheckBox复选框组件
JComboBox下拉列表框,可以在下拉显示区域显示多个选项
JFrame框架类
JDialog对话框
JLabel标签组件
JRadioButton选按钮
JList代表能够在用户界面中显示一系列条目的组件
JTextField文本框
JPasswordField密码框
JTextArea文本区域
JOptionPane对话框

如何创建Swing窗体程序

1.实例化JFrame对象,也就是创建一个窗体。

2.设置窗体的相关属性。

3.获取一个容器。

4.创建组件。

5.向容器添加组件。

6.使窗体可视。

import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
​
public class SwingLearn {
    public static void main(String[] args) {
        //实例化 JFrame
        JFrame frame = new  JFrame();
        //设置相关属性
        frame.setTitle("Swing学习");//标题
        frame.setSize(300,300);//窗体大小
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击关闭按钮是关闭程序
        frame.setLocationRelativeTo(null);   //设置居中
        frame.setResizable(false); //不允许修改界面大小
        
        //获取容器
        Container container = frame.getContentPane();
        frame.setLayout(null);
        //创建按钮
        JButton jButton = new JButton("我是按钮");
        jButton.setBounds(100, 100, 100, 40);
        //按钮添加到容器中
        container.add(jButton);
        
        //设置显示
        frame.setVisible(true);
    }
​
}

 

Swing为什么发展不好?

1)运行Swing程序,用户的电脑上必须有java运行环境,这个不太现实也很不方便。

2)本身用Swing开发出来的客户端本身比较大,客户端也需安装到用户的电脑上。

3)如果遇到不同的操作系统,需要为不同的操作系统开发一套客户端。

4)B/S系统的强势崛起,因为B/S架构多用WEB网页进行开发,不需要安装客户端,在浏览器上打开,一旦代码发生变更,客户端不需要进行升级。

 

swing要不要学?

1)java初学者和学校学生

初学Java的同学可能会觉得敲代码比较枯燥无味,自己辛苦写的代码却只能在控制台打印出来,感受不到交互、没有用户体验,Swing刚好解决了这一问题。

有人可能要说,现在web方向那么火,直接学web不就行了,其实web也有很多东西要学,对编程初学者来说接受那么多的语言太不友好,也很困难,比如:jsp、html、JavaScript、css甚至 node.js、vue.js,初学者如果这么做,等于入门即地狱。

学习Swing需要花很多时间和精力吗?答案不需要

1)Swing是基于java语法,学了java使用它就没有什么门槛,也不需要过渡,并没有要学习接触新的语言。

2)学习常用布局、常用的组件、常用的容器。这些都相对比较固定,上手容易。

3)绘图的学习,绘制也相对比较简单,学会可以做很多小游戏,装逼利器。

学习swing能带来什么?

1)学习java不再是简单无趣的System.out....,用swing有用户体验,提升成就感、信心。

2)如果是做小游戏,能够很好练习线程的使用、业务逻辑的处理。

3)布局,常用的组件等,对于以后学习web也是有一定帮助的,因为它们有着类似的设计思想。

4)绘图的语法与JavaScript canvas语法也是非常的接近,学会了swing绘图,何愁canvas不会?

5)Swing本身就是非常优秀的,通过使用可以学习它的设计思想。

2)有相对较好java基础

不建议学,除非有特殊要求(开发需要、自己爱好、装逼用)

还是多学习框架,比如Struts、spring、springboot、Hibernate,考虑前端的话框架 node.js、 vue.js等。

Swing必要的时候,可以自己再去研究一下,java基础好了学习很容易。

 

看到这里的大佬,动动发财的小手 点赞 + 回复 + 收藏 ,能关注一波就更好了。

欢迎大家留言一起讨论!

 

 

  • 99
    点赞
  • 235
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 72
    评论
### 回答1: C++编程语言? 作为AI语言模型,我认为Java程序员习C++编程语言可以通过以下几个步骤: 1.了解C++的基本语法和特性,包括数据类型、运算符、流程控制、函数、类、继承、多态等。 2.习C++的标准库,包括STL、iostream、string等,掌握常用的数据结构和算法。 3.通过实践项目来深入理解C++编程,例如开发游戏、图形界面应用程序等。 4.参与C++社区,了解最新的技术和发展趋势,与其他开发者交流经验和思路。 以上是我对Java程序员习C++编程语言的建议,希望能对你有所帮助。 ### 回答2: Java程序员要想有效地习,需要掌握以下几个方面。 首先,建立扎实的Java基础。Java的第一步是了解基本的语法规则、数据类型、控制流程等。可以通过阅读相关书籍、参加培训课程或者自来掌握这些基础知识。此外,还可以通过编写小项目或者解决一些简单的编程问题来加深对基础知识的理解和运用。 其次,深入习面向对象编程。Java是一种面向对象的编程语言,掌握面向对象的思想是成为优秀Java程序员的关键。可以通过习类、对象、继承、封装、多态等概念,掌握如何设计和组织自己的程序结构。 第三,不断实践和锻炼编程技能。通过编写各种项目,从简单到复杂,不断地实践和运用所的知识。可以参与开源项目、解决一些实际问题或者完成一些练习题来提高编程技能。同时,要注重代码的质量和可维护性,习编写优雅、高效、可读性强的代码。 第四,保持习的热情和求知欲。Java是一门庞大而复杂的编程语言,技术也在不断发展和演进。作为Java程序员,需要不断习新的技术和框架,了解行业的最新动态。可以通过阅读技术书籍、关注技术博客、参加技术交流会议等方式来持续习和提升自己。 最后,与其他程序员进行交流和合作。和其他Java程序员保持联系,参与技术社区,加入技术讨论组织或者社交媒体群组,互相习和分享经验。与其他程序员合作可以提高解决问题的能力和团队协作能力。 总之,Java程序员需要建立扎实的基础,深入习面向对象编程,不断实践和锻炼编程技能,保持习的热情和求知欲,与其他程序员进行交流和合作。只有不断习和进步,才能成为优秀的Java程序员
评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

编程界小明哥

请博主喝瓶水,博主持续输出!

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

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

打赏作者

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

抵扣说明:

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

余额充值