AWT是基本的GUI设计工具,重点学习其中的布局格式以及事件监听事件。
首先创建一个窗口,我们先分析Frame类中的方法:
通过上图,可以看出frame是由构造方法的重载;可以选择的设置窗口的标题;
为了让一个基本的窗口显示,我们需要设置窗口的可见性;
为了美观,我们设置:
- 窗口大小
- 窗口颜色
- 生成窗口的初始位置在左上角,可以设置初始的弹出位置
问题:当我们在完成上述操作后,会出现一个窗口,但是我们无法手动关闭窗口,即点击右边的是没有用的;
当我们完成单个窗口的实现后,回想一些骚操作!
经过上面的学习,我们基本掌握了GUI中基础的窗口设置;接下来解决窗口的关闭问题;
并且引入面板相关的概念。
一个界面只可以有一个Frame窗体组件,但是可以有多个Panel面板组件,而Panel上也可以使用FlowLayout,BorderLayout,GridLayout等各种布局管理器(后面涉及),这样可以组合使用,达到较为复杂的布局效果。
WindowAdapter:
- 用于接收窗口事件的抽象适配器类。 此类中的方法为空。 此类的存在是为了方便创建侦听器对象。
- 扩展此类以创建WindowEvent侦听器,并覆盖感兴趣事件的方法。
- (如果实现WindowListener接口,则必须定义其中的所有方法。此抽象类为所有接口都定义了空方法,因此只需要为你关心的事件定义方法。)
- 使用扩展类创建一个侦听器对象,然后使用窗口的addWindowListener方法将其注册到Window中。 当窗口的状态由于打开,关闭,激活或停用,图标化或去图标化而改变时,将调用侦听器对象中的相关方法,并将WindowEvent传递给它。
在使用 [Swing]向容器添加组件时,需要考虑组件的位置和大小。如果不使用布局管理器,则需要先在纸上画好各个组件的位置并计算组件间的距离,再向容器中添加。这样虽然能够灵活控制组件的位置,实现却非常麻烦。
为了加快开发速度,[Java]提供了一些布局管理器,它们可以将组件进行统一管理,这样开发人员就不需要考虑组件是否会重叠等问题。
- 流式布局(FlowLayout)
- 边框布局(BorderLayout) --东西南北中布局
- 表格布局(GridLayout)
AWT的事件处理机制是一种委派式事件处理方式:普通组件(事件源)将整个事件处理委托给特定的对象(事件监听器);当该事件源发生指定的事件时,就通知所委托的事件监听器,由事件监听器来处理这个事件。 每个组件均可以针对特定的事件指定一个或多个事件监听对象,每个事件监听器也可以监听一个或多个事件源.
简单来说,当用户触发某个条件或者事件的时候,处理代码将被自动运行,类似钩子一般。
效果:
注解:一般常见于Java 的awt, swing的事件处理里面,e是指一个事件,如ActionEvent,MouseMoveEvent等,它有一个事件发起者,用e.getSource()可以获得,但getSource()返回的是Object类型(保持方法的通用性),所以如果已经知道是按钮产生的事件,可以用(JButton)e.getSourse()强制转换成JButton对象,这样就可以用JButton对象的方法了
基础写法:(面向过程的)
实现效果:
升级版:(面向对象)+组合概念
高级写法:(内部类)
内部类最大的好处是:能够畅通无阻的访问外部类
设置了画笔颜色:
初始画笔:
目的:实现鼠标画画--》最简单的点击
效果图:
效果:
效果图:
图片标签:
效果图:
优化部分:
积分越高等级越高,等级越高timer定时频率越快
小蛇撞墙增加失败判断
食物分不同颜色,不同分数身体增长长度不同,或者减少长度,或者小蛇死掉
小蛇转向方向,不能和原来的方向正相反
鼠标控制方向
游戏记录存数据库
连击对战
登录
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/10225.html