做扫雷过程中的杂记

来源:互联网 发布:现在做网络主播赚钱吗 编辑:程序博客网 时间:2024/05/08 21:02

7.27   关于MineLabel.java的作用

          这个类中只有两个构造方法,还有一大堆的成员实例变量(相见代码)

          其实,这个类的作用是赋予了每个雷块生命,每个雷块由一个有序实数对来标记,再加上各种属性。

 

7.30  

1. 为什么要透过startFrame访问mineField?

2. 为什么要透过startFrame访问mineState?

     我们来思考一个很重要的问题:从我们画出来的那张“整体思路表”出发,我们运行整个程序,先new 一个StartFrame类的对象startFrame,现在我们要有一种观念,未对扫雷界面的进行操作前,其实整个扫雷的界面就是startFrame这个对象。之后无论什么样的操作都是基于startFrame这个对象的,并不是StartFrame这个类。你可能会说,当我们重新选,比如说中级,不是产生一个新的对象了吗?答案当然是错的。其实重新选中级,只是重新调用这个对象的restart这个方法,把我这个对象startFrame一开始调用的类MineState所创造的对象mineStateMineField所创造的对象mineFieldMineTimer所创造的对象mineTimer,被全部毁灭(remove),再重新创造新的对象mineState,mineField,mineTimermineMenu当然不用改了),但是记住一点:startFrame这个对象从创造的那刻起,并没有被毁灭重新创造过,除非你按了关闭键,才会把这个对象销毁。

 

ccc

 

     回到这个问题上来,所以当在LabelMouseListener.java中

   // 1 笑脸区表情变惊讶    startFrame.getMineState().getNewGame().setIcon(Tools.iiface2); 

     因为我要改变的是startFrame这个对象中的对象mineState下的属性newGame(承载笑脸图片的变量),那么我就得调用startFrame这个对象下的方法getMineState(),以能调用到mineState这个对象,再调用getNewGame()这个方法来改变属性!

 

    

    

 

原创粉丝点击