Java简单线条绘图程序

时间:2011-10-02 14:40:05

标签: java drawing line

我想创建一个简单的java应用程序,仅用于绘制线条。

我的程序现在就是这样;

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

但是,因为每当我清除屏幕时,用户只能画一条线。 如果我不清洁屏幕,那么在用户拖动鼠标时会创建线条以及曲线等。

我该如何找到解决该问题的方法?

感谢。

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:2)

  1. 在鼠标按下时,保存位置。
  2. 在鼠标向上时,使用向上和向下点创建一个新的线对象(定义自己的类)。
  3. 删除存储的鼠标(因为你不再需要它了!)
  4. 将新线对象添加到您定义的行列表
  5. 绘画时,请务必清除所有内容并绘制已存储的每一行。
  6. 或者,如果您在鼠标按下时,也在当前存储的鼠标按下位置和当前鼠标位置之间画一条线。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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