首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

蓝海之旅——画图板项目小结

2012-11-01 
蓝海之旅——画图板项目总结????????????????? 蓝海之旅——画图板项目总结????? 从来没想过自己能够做出和XP

蓝海之旅——画图板项目总结


????????????????? 蓝海之旅——画图板项目总结
????? 从来没想过自己能够做出和XP一样的画图板出来,但如今我却做到了。尽管还有些功能没有实现,还是在蓝杰老师的指导及一起学习的伙伴的帮助下完成的。但究竟这也是我的第一个项目了。第一次总是好的,也是值得回忆的。

以下我项目的总结:

一、项目名称:自由小熊画板

?

二、功能介绍
1、画图功能:这个画图板可以实现曲线、直线、矩形、椭圆、填充矩形等各种多边形的画法。
2、颜色选择功能:可以设置画布的背景颜色,也可以设置图形的颜色,颜色是自己从选择器中自行选取的。

3、重绘功能:最小化窗体后,能够使所绘图形重新展现出来;?

三、截图

蓝海之旅——画图板项目小结

?

?四、程序结构


蓝海之旅——画图板项目小结
?

?

五、技术点分析

在画图板的开发当中,用到的技术点有:构造器、类的继承、自动转型、多态、接口及抽线类、事件监听器、JAVA.SWING组件及布局管理器、GRAPHICS对象及方法的调用、数组和队列的运用。主要技术点:

1.构造器和类的继承,自动转型及多态及匿名内部类的灵活运用。

a.构造器的使用

// 重载构造器传入相关参数(创建工具面板对象和画布对象)
?public DrawListener(ToolPanel tp, Graphics g, ColorPanel cp, DrawPanel dp,
???ListImp<Shape> shapes) {
??this.tp = tp;
??this.cp = cp;
??this.dp = dp;
??this.shapes = shapes;
??g.setColor(color);
??color = cp.getBackgroundColor();

?}?

b.匿名内部类的使用

// 实例化一个画图面板,并定义重绘画布对象的方法; final DrawPanel dp = new DrawPanel() { //使用匿名内部类 public void paint(Graphics g) { super.paint(g); // 遍历 drawShape(g); } }

?

?

2.类参数及全局变量和局部变量的传入与使用。特别是graphics 类变量的传入与导出的处理。

// 鼠标按下的时的监听方法 public void mousePressed(MouseEvent e) { g = dp.getGraphics(); x1 = e.getX(); y1 = e.getY(); // 在画图之前取得选中的color color = cp.getBackgroundColor(); // 设为画布上的color g.setColor(color);

?

?

?

3. 数组及队列的灵活运用。

//创建工具图形名称数组 String[] toolname={"any","select","brush","curve","eraser","line", "loupe","oval","paint","text","pencil","painting","polygon","rect","round_rect",

?

?

??//调用循环语句将数组中语素实例化对象及调用
??for(int i=0;i<toolname.length;i++){
???ImageIcon? toolpic = new ImageIcon("images/"+toolname[i]+".gif");
???javax.swing.JButton jbt = new javax.swing.JButton(toolpic);
???jbt.setPreferredSize(new Dimension(25,25));
???jbt.setActionCommand(toolname[i]);
???jtbar.add(jbt);
???jbt.addActionListener(btnlistener);

六、开发过程中遇到的错误。

? 1.在画布对象的传入与导出时出现错误导致不能改变颜色。

? 2.添加菜单条时出错,添加菜单条到窗体时一定要使用set方法,否则导致画笔坐标出现误差。 // 设置窗体的菜单栏 this.setJMenuBar(menubar);

?3.在最后画图方法继承shape类后,调用画图方法,在传入参数时出错。

??? 没有与构造器参数顺序一致(方法参数顺序)

?

?

?

//重载构造方法,要求在创建直线对象的时候,传入画直线的点的坐标和颜色 public Oval (int x1,int y1, int x2,int y2,Color color){ this.x1=x1; this.x2=x2; this.y1=y1; this.y2=y2; this.color=color; }

?

?

else if (tp.getCommand().equals("oval")){ // 创建椭圆对象,并传给形状变量 sh = new Oval(x1, y1, x2, y2, color); sh.draw(g); // 将形状变量保存到队列当中; shapes.add(sh);

?

?


?

?

?

热点排行