我想创建一个简单的java应用程序,仅用于绘制线条。
我的程序现在就是这样;
用户可以通过拖动鼠标来绘制所有内容,但是当他释放手指时,我从屏幕上删除了所有内容,并绘制了一条线,与第一个鼠标坐标和最后一个鼠标坐标相关。
但是,因为每当我清除屏幕时,用户只能画一条线。 如果我不清洁屏幕,那么在用户拖动鼠标时会创建线条以及曲线等。
我该如何找到解决该问题的方法?
感谢。
答案 0 :(得分:5)
解决问题的一种简单方法是在程序中保留状态。每次绘制一条线时,将其存储在点对的ArrayList中。当用户成功绘制一条线时,将该线的起点和终点存储到ArrayList中。每次用户绘制另一条线时,将该对点添加到ArrayList。然后,当需要绘制“所有线条”时,清除屏幕然后使用循环,并为每个存储的点对画一条线。
在程序的某个地方,有一个类的生命周期“只要一个绘图”,或“只要应用程序运行”。这是保持国家的好地方。
答案 1 :(得分:2)
答案 2 :(得分:1)
将行的起点和终点存储在放置在可扩展集合(例如ArrayList
)中的对象中。在绘制时,绘制列表中的所有行。
答案 3 :(得分:1)
Custom Painting Approaches提出两种方法。第一个存储/重绘这里已经建议的行。第二种方法是直接绘制BufferedImage。