【发布时间】:2011-10-02 14:40:05
【问题描述】:
我想创建一个简单的 java 应用程序,只画线。
我的程序现在是这样的;
用户可以通过拖动鼠标来绘制所有内容,但是当他松开手指时,我从屏幕上删除了所有内容,并针对第一个鼠标坐标和最后一个鼠标坐标画了一条线。
但是,因为每次我清屏,用户只能画一条线。 如果我不清理屏幕,用户拖动鼠标时会创建线条和曲线等。
我应该如何找到解决该问题的方法?
谢谢。
【问题讨论】:
我想创建一个简单的 java 应用程序,只画线。
我的程序现在是这样的;
用户可以通过拖动鼠标来绘制所有内容,但是当他松开手指时,我从屏幕上删除了所有内容,并针对第一个鼠标坐标和最后一个鼠标坐标画了一条线。
但是,因为每次我清屏,用户只能画一条线。 如果我不清理屏幕,用户拖动鼠标时会创建线条和曲线等。
我应该如何找到解决该问题的方法?
谢谢。
【问题讨论】:
解决问题的一种直接方法是在程序中保持状态。每次绘制一条线时,将其存储在点对的 ArrayList 中。当用户成功绘制一条线时,将该线的起点和终点存储到 ArrayList 中。每次用户绘制另一条线时,将该对点添加到 ArrayList。然后,当需要绘制“所有线条”时,清空屏幕,然后使用循环,为每对存储的点绘制一条线。
在您的程序中,有一个类的生命周期“与绘图一样长”,或“只要应用程序运行”。那是保持状态的好地方。
【讨论】:
【讨论】:
将线条的起点和终点存储在可扩展集合中的对象中,例如ArrayList。绘制时,将列表中的所有线条都绘制出来。
【讨论】:
Custom Painting Approaches 建议两种方法。第一个按照这里的建议存储/重绘线条。第二种方法是直接绘制到 BufferedImage。
【讨论】: