Rex Mao

分享java技术与生活

#

java画图程序技术小结(二) 重绘与双缓冲

双缓冲,我记得有两种方法,一种是两个图象,一个前台Graphics,一个后台Graphics,画图时在后台画,画好了,再用前台的Graphics画后台Graphics的图片。另一种是有两个或多个图象,不分前后台,显示一个图象时,另外的在画,图象循环使用(c语言时用过)。
         给出第一种的java实现
         a、  定义后台图象BufferedImage offScreenImg=offScreenImg = new BufferedImage(this.maxX, this.maxY,
                                     BufferedImage.TYPE_INT_RGB);

         b、  得到后台的Graphics实例

    Graphics2D offScreenG;

        offScreenG = offScreenImg.createGraphics();

         c、  覆盖paintComponent方法

     public void paintComponent(Graphics g) {

          super.paintComponent(g);

        g.drawImage(offScreenImg, 0, 0, this.maxX, this.maxY, this);

          }

        绘制时用后台Graphics,绘制好后,调用repaint(),将offScreenImg绘到面板上。


posted @ 2007-04-23 21:47 Rex Mao 阅读(4389) | 评论 (1)编辑 收藏

java画图程序技术小结(一) 程序结构问题

         这个软件是我大二时的图形学课程设计,是个矢量图形的绘制软件。发来给初学者参考。
         主要功能:
         实现点、线段、折线、圆、椭圆、矩形、圆弧、多边形、填充图形、字符串等的定义和交互绘制。
         实现线型、线宽、颜色的选择。
         实现画布的定义及保存。


         程序结构:

程序的主要功能均由类PaintPanel完成,该类继承自JtextArea。(用它是为了实现画布的大小调整的滚动条,以后介绍)

PaintPanel中主要成员:

ArrayList shape 保存当前画布上的图形对象

ArrayList undo  保存用于撤消操作的图形对象  

Color bgCol    背景颜色

BufferedImage offScreenImg   后台图象

Graphics2D offScreenG       后台Graphics对象

Clipboard cb;   剪切板(由系统剪切板实例化)

   程序中定义接口:CusShape,主要有一些操作图形的基本方法,比如,绘制,位置控制,颜色控制(具体可看代码)
   其他图形均继承java.awt中的对应的类(主要是使用其中的交叉判断函数intersects,用于图形的鼠标选取),并实现Serializable,CusShape。
   图形在程序中都以接口CusShape形式出现,以画的图形存储在ArrayList中。

   我是通过这个软件的设计才明白多态的,以前都是理论上的,经过实践才知道面向对象的好处。这个软件编写的时候我对java还不是很了解,所以有的结构不是很合理,写出来就是给初学者做个参考,看到有很多同学都在找画图板的设计,我会给出程序和简单的设计文档。

posted @ 2007-04-23 10:11 Rex Mao 阅读(3908) | 评论 (4)编辑 收藏

转移了一些图片

         从以前的博客转了一些图片过来,以前的一些技术小结也要转过来。

posted @ 2007-04-23 09:42 Rex Mao 阅读(227) | 评论 (0)编辑 收藏

java名称的由来-开篇

 刚开了这个博客,既然是java技术,我想以这个开篇还是合适的
         
         java名称的来历                                                                                                                          
         1995年初,Sun公司推出了新一代面向对象的程序设计语言,并将其命名为Java。关于Java这个名字的来历有一段趣闻:有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,这个提议得到了其他人的赞同,于是,Java这个名字就这样传开了。
         关于java的咖啡图标,我以为也可以有悠闲的意思,就是说使用java语言可以有更好的开发效率,给你更多悠闲的时间(喝咖啡)。还有一杯咖啡放在你的面前,你是不是有一种要把它端起来的冲动呢,其实就是让你体验java的冲动。
         在和室友小赖谈论这个话题时,他说我们要是开发一种语言就叫guoba(锅巴),呵呵.

posted @ 2007-04-22 11:17 Rex Mao 阅读(1607) | 评论 (2)编辑 收藏

仅列出标题
共2页: 上一页 1 2