学习来源: 【狂神说Java】GUI编程入门到游戏实战_哔哩哔哩_bilibili
告诉大家在怎么学?
- 这是什么?
- 它怎么玩?
- 该如何去在我们平时运用
- class-反编译文件,可阅读文件
组件
- 窗口
- 弹窗
- 面板
- 文本框
- 列表框
- 按钮
- 图片
- 监听事件
- 鼠标
- 键盘事件
- 外挂:Java / 破解工具
1 简介
Gui的核心技术:Swing(封装)、AWT(底层)
几乎被市场淘汰,原因:
- 页面不美观
- 需要jre环境!
为什么需要学习?
- 可以写出自己心中想要的一些小工具
- 工作时候,也可能需要维护到swing界面,概率极小
- 了解MVC架构,了解监听!
2 AWT(底层)
2.1 AWT介绍
- 包含了很多类和接口!GUI:图形用户界面
- 元素:窗口,按钮,文本框
- java.awt包
![(C:UsersAAppDataRoamingTypora ypora-user-images1651709907240.png)]](https://i-blog.csdnimg.cn/blog_migrate/17cb46bd743dd1fec9ae4fc1070b3ced.png)
2.2 组件和容器
1 frame
问题:窗口无法关闭,需要解决的问题
尝试回顾封装
2 面板Panel
解决了关闭事件
2.3 布局管理器
- 绝对布局
-
流式布局FlowLayout
-
东西南北中
- 表格布局
思考题:
写出下面的图形:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K562I1DE-1652689910877)(C:UsersAAppDataRoamingTypora ypora-user-images1651766562951.png)]](https://i-blog.csdnimg.cn/blog_migrate/8ed17616d0a253d09a8c1c9cb5e6b9a6.png)
代码实现:
小结:*
- Frame是一个顶级窗口
- Panel无法单独显示,必须添加怎么编程游戏到某个容器中
- 布局管理器
- 流式布局
- 东西南北中
- 表格
- *大小、定位、背景颜色、可见性、监听!
2.4 事件监听
事件监听:当发生某个事件时,干什么?
多个按钮,共享一个事件
2.5 输入框TextField
2.6 简易计算器
组合+内部类回顾复习
oop原则:组合大于继承!优先使用组合
构造怎么编程游戏器方法
——面向过程
组合的方式
——优化一下(尽量不用多态和继承,多态增加复杂性代码理解容易错误,继承增加耦合性)
面向对象方法
——完全改造为内部类
- 更好的包装

- 畅通无阻的访问外部的属性和方法(内部类的最大好处)
2.7 画笔
- 先有画笔
- 画笔要有颜色(记住默认的颜色)
- 画笔进行画画(如果每秒画N次,则产生了动画效果)
- 画完以后,画笔还原为最默认色
2.8 鼠标监听
目标:想要实现鼠标画画
思路:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RORPt2l7-1652689910878)(C:UsersAAppDataRoamingTypora ypora-user-images1652005334994.png)]](https://i-blog.csdnimg.cn/blog_migrate/ec35d2c0d754e0c8c95841d9191dd40b.png)
2.9 窗口监听
优化一下——匿名内部类
2.10 键盘监听
3 Swing(封装)
3.1 窗口、面板
颜色未更改
JFrame是Frame的儿子
颜色已更改(因为container),标签已居中
3.2 弹窗
JDialog,用来被弹出,默认就有关闭事件!
上述示例弹窗并没有显示出字来, 解决办法:
- 弹窗取消设置为绝对布局
- Label设置Bound
- 弹窗不使用container容器
3.3 标签
label
图标icon
图片icon
3.4 面板
JPanel
JScroll
3.5 按钮
图片按钮
单选按钮
复选按钮
课外小知识:
JProfiler性能分析工具,如内存等
3.6 列表
下拉框
列表框
- 应用场景
- 选择地区,或者一些单个选项
- 列表,展示信息,一般是动态扩容!
3.7 文本框
文本框
密码框
文本域
GUI编程基础已经结束
- HTML+Servlet
- MVC
C/S:客户端–>服务器(c++)
B/S:浏览器–>服务器(Java)
帧,如果时间足够小,就是动画,一秒30帧 60帧,连起来是动画,拆开就是静态的图片
四个步骤:
- 定义数据(初始化数据)
- 画上去
- 监听事件
- 键盘
- 事件