当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

重绘之画图板

发表于: 2015-03-15   作者:朱辉辉33   来源:转载   浏览:
摘要:        上次博客讲的五子棋重绘比较简单,因为只要在重写系统重绘方法paint()时加入棋盘和棋子的绘制。这次我想说说画图板的重绘。        画图板重绘难在需要重绘的类型很多,比如说里面有矩形,园,直线之类的,所以我们要想办法将里面的图形加入一个队列中,这样在重绘时就
       上次博客讲的五子棋重绘比较简单,因为只要在重写系统重绘方法paint()时加入棋盘和棋子的绘制。这次我想说说画图板的重绘。
       画图板重绘难在需要重绘的类型很多,比如说里面有矩形,园,直线之类的,所以我们要想办法将里面的图形加入一个队列中,这样在重绘时就可以取出队列中的所以图形,然后绘制。
  首先我们可以创建一个接口,命名为shape(),里面只有draw()一个方法,这样我们建其他图形类时都可以继承这个接口,例如
public class Rect implements Shape{
   int x,y,width,height;

           public Rect(int x, int y, int width, int height) {
                     super();
                     this.x = x;
                     this.y = y;
                     this.width = width;
                     this.height = height;
   }

                  public void draw(Graphics g) {
                  g.drawRect(x, y, width, height);

          }

}
       这样我们每在画图板上绘制一个图形,都同时把这个图形加入队列list中,重绘时只要把每个图形取出来,然后调用它的draw()方法,这样就全部绘制出来了。
       JPanel drawpanel =new JPanel(){

       public void paint(Graphics g){

        super.paint(g);   for(int i=0;i<list.size(); i++){
         Shape shape = (Shape)list.get(i);
         shape.draw(g);
     }
}
         };

重绘之画图板

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
在前面的一篇博客中发表了一篇关于简单画图板的实现的博客,那个画图板的功能不多,而且界面不美观
在讨论页面重绘、回流之前。需要对页面的呈现流程有些了解,页面是怎么把html结合css等显示到浏览器
在讨论页面重绘、回流之前。需要对页面的呈现流程有些了解,页面是怎么把html结合css等显示到浏览器
原文转载:http://www.cnblogs.com/wangzhichao/archive/2011/05/16/2047633.html 页面呈现流程 在
页面呈现流程 在讨论页面重绘、回流之前。需要对页面的呈现流程有些了解,页面是怎么把html结合css
高性能WEB开发之页面呈现、重绘、回流(1) 2011-04-25 10:11 BearRui BearRui的Blog 字号:T | T 在
TDateTimePicker的重绘、美化等等,很多都是使用第三方控件来进行替代。然而,不想因为只使用一个控
原文地址: http://www.raywenderlich.com/zh-hans/20367/core-graphics-101-%E5%85%89%E6%BB%91%E7
这是我刚开始学习Java的另一个实例,先上图。。 首先也是先从界面开始,第一就是主要面板,就是一个
页面呈现流程 在讨论页面重绘、回流之前。需要对页面的呈现流程有些了解,页面是怎么把html结合css
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号