易截截图软件、单文件、免安装、纯绿色、仅160KB

使用游戏学习java面向对象编程(2)

上一次,我们完成了界面的组织。接下来我们完成业务逻辑。
1)如何完成周围相邻的按钮变色。
分析:因为我们做了一个5*5的数组。并且事先我们给每个自定义的button加了x和y坐标
就是为了更方便的给相邻的按钮变色。
  当我们点击(2,2)按钮时,周围的 4个按钮会变化。
当然首先我们应该先给每个按钮增加监听器。我们使用内部类来完成此功能
内部类如下
   //定义一个内部类,专用于处理button事件
class buttonHandler implements ActionListener {
MyButton btn;
//构造方法,得到需要处理的button
public buttonHandler(MyButton button) {
btn = button;
}
public void actionPerformed(ActionEvent e) {
changeRound(btn);
if (isWin()) {//如果赢了,显示一个对话框
disableAll(); //不能再点击了。
JOptionPane.showMessageDialog(null, "恭喜恭喜!您过关了");
}
}
}

再次强调这个类是定义在Game类中的。
接下了要回到我们的目的--相邻按钮,变色策略如下
 //改变自己以及四周的按钮的颜色
public void changeRound(MyButton btn) {
int i = btn.getXCord();//取得按钮所在的位置
int j = btn.getYCord();
buttons[i][j].changeColor(); //先自己变色,也可以btn.changeColor();
if (j > 0) {
buttons[i][j - 1].changeColor();//上
}
if (j < N - 1) {
buttons[i][j + 1].changeColor();//下
}
if (i > 0) {
buttons[i - 1][j].changeColor();//左
}
if (i < N - 1) {
buttons[i + 1][j].changeColor();//右
}
}
  
最后,每次点击按钮都要检测按钮是否全部已经被搞定了。
//检测玩家是否已经赢了的方法
 //思路:将所有的按钮的背景色都查一遍
 public boolean isWin() {
boolean flag = true;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (buttons[i][j].getBackground() == Color.white) {
return false;
}
}
}
return flag;
}
  
   ok. 程序就已经基本搞定了。
总结一下知识点:
1)继承
2)数组
3)java swing事件
4)内部类
其中swing 和内部类还有一些细节可以深入。大家可以自己去查相关的资料
 代码下载
http://cnjava.blog.51cto.com


相关文档:

Java设计模式之:Iterator链表模式

先来了解一下链表模式的原理:
首先写一个JavaBean,内容是要添加的元素和该元素的节点。
public class NodeBean implements Serializable
{
   
    private Object data; //元素本身
    private NodeBean next; //下一个节点
   
  &n ......

传智播客java培训2010年4月21java高新技术5(泛型)


在传智的这段时间每天的情形想都想得到,两点一线,但是每天都感觉到很充实,学习,不停的学习。越是不停的学习,越是感觉自己的力量是那么的微薄,自己的能力是那么的小,JAVA真是博大精深。老师说叫我们不要担心,可是我不担心也不可能哦,毕竟在同类学校毕业的,也许我们可以算得上是很不错的,但是和我们同台竞技的人 ......

java错题集


正多边形中最长的对角线就是主对角线,其余的对角线就是副对角线
lang 是 language(语言) 的简写
是java中常用方法最多的包
包含常用类
 
 
 
Runnable接口,只有一个方法run()
exit(int status)
          终止当前正在运行的 Jav ......

在Eclipse中用Java实现百灵报表(BIRT)的事件处理

8. 当系统处理完成后,报表被显示出来。这是一份商品销售报告,显示的是每类商品的季度销售额以及累计情况。接下来,我们尝试用 Java
创建一个事件响应处理类,把每季度销售额在10万美元以上的数据用红色标示出来。
创建 Java 类
    按照如下步骤,用 Java 创建百灵报表(BIRT)的事件响应处理程序。
......

oracle 返回一个java对象,和返回多个java对象的方法

返回多个对象:
    PROCEDURE AUTO_SEL_INVOICE_DETAIL(
  P_RESULT_LIST OUT SYS_REFCURSOR) AS
    BEGIN
    OPEN P_RESULT_LIST FOR
   SELECT DISTINCT CC.CHARGE_COLLECTION_ID CHARGE_COLLECTION_ID, CC.COLLECT_DATE COLLECT_DATE, C ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号