?
?????????????????????????????????????????????
??????????????? ?画图板的总结 ?
?
画图板做到现在,自己想了想,画图板实现的思想是先长骨头再生血肉。骨头即框架:窗体,面板,组件。血肉:监听器,队列,各组件功能的实现。
骨头: ?
???
2.总共是五个,分别是NORTH、SOUTH、WEST、EAST、CENTER,根据windows中自带的画图板来一一实现每个区域。而每个区域都是以面板为容器,所以我们也要先设计好面板的样式:大小,背景,布局管理器。其中需要注意的是大小,对于大小,只有窗体的大小可以直接jf.setsize( ).而其他的组件都必须要首先创建Dimension对象,然后用setPreferredSize()添加Dimension对象。而布局管理器根据面板上组件不同的性质来设置。其中比较特别的是SOUTH面板,它的布局管理器是设置为NULL,因为它的组件是用setbounds来确定自己的位置。
???
3.因为每个区域要实现的功能不同,所以需要不同的组件。设置菜单栏。需要的是JmenuBar、Jmenu、JmenuItem 组件。其中需要注意的是,窗体对象添加菜单栏的时候,不是用add.而是用setJmenuBar。
???
4.左面板区域实现根据用户的需要来改变所画的图形。于是用按钮组件来体现。1在这里涉及了一个小难点:如何设置按钮的图标。解决方案:首先根据图片保存的地址来创建java.net.URL 对象,然后再用java.net.URL来创建javax.swing.ImageIcon对象,最后添加到按钮上。这个过程中需要注意一个按钮有四种状态:静止,进入,点,选择。所以有四种图标。同时需要注意的是这里因为需要添加的图标很多,所以运用到for循环语句。2因为设置了图标,所以就不需要设置大小了。但是需要设置它的边框。 3为了后面监听器的实现,那么就必须在每个按钮上设置动作命令。 4最后要将所有形状按钮放到一个按钮组。
???
5.中面板上是要实现画画的功能。所以必须要在其上添加一个画布面板。然后在画布面板上取得画布对象。这里就涉及到了几个很重要的知识:如何保存图片。1学习了数据结构中的数组和队列。对于队列,它是以数组为基础的。写一个队列时,先根据它需要的功能来编写它的接口。感觉这里很有意思,就像一个项目经理根据客户的要求来写一个接口,然后安排团队的其他人去完成。 2 重写父类的画画方法。
???
6.底面板是用来改变画笔的颜色,根据windows自带的画图板,将这个面板分为三个面板。一个是来呈现选中的颜色,一个是来选颜色,一个是来备注。由于这里流式管理器不好安排三个面板的位置,所以就用setbounds来设置位置。这里颜色的选择和显示都是用标签。需要设置它的大小,边框,背景,透明度。
血肉: ?
*?????????? 形状组件:根据形状组选中的按钮的动作命令来判断是要画什么类型的形状。然后就根据每个形状的特点来写程序,并且要把每次画的图形用队列保留下来。
?
*?????????? 颜色标签:颜色就相对来说比较简单,只需要在mousePressed方法中用e.getSource和e.getButton来设置画笔的颜色。
?
2.队列。一种数据储存结构。它的最主要的特点是长度可变,不惟一。它是需要根据自己的需要来编写方法和属性,Java中并不自带。在画图板中主要是用来保存图形的。?
?
?
心路成长:
????????? 1 凡事首先要想到是否自己就可以解决。培养自己查找资料的能力。
???
????2 培养自己的商业思维,程序不是只写给自己看的,所以必须注意它的可读性。
?
??? 3 做事不要总是只想而不去动手实践,那么成功的可能性就会大大降低。
?
??? 4 成功的办法很简单,就是踏踏实实的做。
?
?
?
?