从画图板谈面向对象

              最近着手了一个新的项目--画图板。由于画图板上有很多按钮,大致可以按照功能和颜色分类。可是这么多的按钮要实现不同的功能,初步地试想了下觉得是不是要添加几十个监听器,实现对按钮的对应控制,学习的过程中了解到了有setActionCommand ()和getActionCommand()两个方法,在创建监听器的时候可以在循环创建按钮的同时添加setActionCommand()方法,然后在监听器内用一个变量 接受e.getActionCommand()来获取接收到的指令。我采用一个与图片数量相同大小的字符串数组,创建按钮的同时将字符串数组传入setActionCommand中,然后在监听器内获取,最后在鼠标监听器内根据接受的值来决定画什么或者实现什么功能 。

          在绘图功能列表方面,利用一个Shapes作为父类封装图形的属性(坐标值和颜色),再分别在画直线、椭圆、刷子等类继承Shapes类从而绘出相应的图形。这样大大节省了代码的开支,只要在每个类中实现父类的draw方法就可以画出相应的图形,并且创建一个自己的抽象类容器,将shapes封装进去,用以保存绘制过的图形。这样变换窗体图形不会消失,并且会自动调用paint方法重绘。

         我现阶段的感觉,在编程中对一类事物的封装往往能够化繁为简,大大提高代码质量。不仅使代码变得便于阅读,也方便以后的修改,在JAVA的学习中一定要牢牢把控住面向对象的思想,考虑问题的时候以面向对象的思想为核心,必定能在程序设计方面有所建树。



你可能感兴趣的:(学习心得)