2011-10-02 85 views
2

我想创建一个简单的Java应用程序来绘制线条。Java简单线条绘制程序

我的程序就像现在这样;

用户可以通过拖动鼠标来绘制所有内容,但当释放他的手指时,我从屏幕上删除了所有内容,并绘制了第一个鼠标坐标和最后一个鼠标坐标的一条线。

但是,因为每次我清除屏幕,用户只能画一条线。 如果我不清洁屏幕,有线条,但也有曲线等,这是用户拖动鼠标时创建的。

我应该如何找到解决方案?

谢谢。

回答

5

解决您的问题的一种简单的方法是在程序中保留保留状态。每当绘制一条线时,将其存储在一个点对的ArrayList中。当用户成功绘制一条线时,将该线的起点和终点存储到ArrayList中。每次用户绘制另一条线时,将该对点添加到ArrayList。然后,在绘制“所有线条”时,清除屏幕然后使用一个循环,并为每个存储的点对绘制一条线。

程序中的某个地方存在一个类,其生命周期“只要绘图”,或“只要应用程序运行”。这是保持国家的好地方。

1

将行的起点和终点存储在放入可扩展集合(如ArrayList)中的对象中。在绘制时,绘制列表中的所有行。

2
  1. 在鼠标向下,存储位置。
  2. 在鼠标上方,用向上和向下的点创建一个新的线对象(定义你自己的类)。
  3. 取出存储鼠标下来(因为你不需要它了!)
  4. 新线对象添加到行的列表定义
  5. 当你画,总是很清楚一切,并吸引你有每一行存储。
  6. (可选)如果鼠标向下,还在当前存储的鼠标向下位置和当前鼠标位置之间绘制一条线。
1

Custom Painting Approaches提出了两种方法。第一个存储/重绘的行已经在这里建议。第二种方法是直接绘制到BufferedImage。

+0

+1我忘了'BufferedImage'。 –