java基础梳理一 (二)

2014-11-24 01:36:53 · 作者: · 浏览: 1
有swing、swt与awt三种

b) 为什么要使用swing,而不使用awt

它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。

c) 所有的图形界面都是从哪一个类继承的?

Object类

d) 事件步骤

1. 确定事件源;

2. 给事件源设置好条件,设置好捕获事件的条件;

3. 创建一个处理事件的类,再实例化类的对象;

4. 结束;

e) 常用的监听器

鼠标监听器(继承自MouseAdapter类)

ActionListener

f) ActionEventMouseEvent

ActionEvent为语义类事件,而MouseEvent为低层事件

5. 数组和队列

a) 数组

数组是一种线性的数据结构

操作数组是通过什么?

数组下标

多维数组

是一维数组的拓展

获取行的总数格式? array.length

获取列的总数格式? array[i].length

数组的缺点?数组中只能存储一种类型的数据;

数组的长度是固定的,如果发生追加或者删除长度的时候无法实现

b) 队列: 定义一个类,用该类来封装对数组的操作。

数组可以使用Object来实例化。

队列只能存储一种数据类型。

但是java提供了一个叫做泛型的概念, E可以表示java所有类,然后E结合类一起使用就可以储存不同类型的数组元素;

6. 重绘

1. 要有一个队列来储存获过的对象

2. 要有一个画图形的类,每画一次就加到队列中

3. 调用父类的paint方法,然后通过循环队列里储存的画图类,每次都重绘一次

7. 五子棋

一、界面

五子棋界面窗体:设置好窗体属性;并显示窗体

在显示界面的时候就需要有一个棋盘,并且棋盘要一直在窗体上存在。

15*15格子的棋盘。每一个格子的大小40个像素,每一颗棋子的大小是30像素

用数组来对应所下的棋子

二、输赢算法:

同色棋子在“米字”方向上有连接超过5个则该色棋子赢了;

三、人机,判断机器下的子:

根据棋子在棋盘上的相连排列,分为8种(或更多);

有一连活(表示只有一个棋子相连,周围8面都是活路),一连半(表示一个棋子相连,一面被异色棋子堵住,一条线只能下一边),相似还有二连活、二连半、三连活、三连半、四连活、四连半;将这些位置设置为不同的权值,一个棋子周围就有不同的权值,所有棋子的权值表累加在一起,判断权值最大的地方就是落子的地方

四、重绘:每下一个棋子都放入队列中,然后与窗体一起重绘