Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java简单划线程序_Java_Drawing_Line - Fatal编程技术网

Java简单划线程序

Java简单划线程序,java,drawing,line,Java,Drawing,Line,我想创建一个简单的java应用程序,只用于绘制线条 我现在的节目就是这样, 用户可以通过拖动鼠标来绘制所有内容,但当他松开手指时,我从屏幕上删除了所有内容,并根据第一个鼠标坐标和最后一个鼠标坐标绘制了一条线 然而,因为每次我清除屏幕,用户只能画一条线。 如果我不清理屏幕,会有线条,但也会有曲线等,这些都是在用户拖动鼠标时创建的 我应该如何找到解决这个问题的方法 谢谢。解决问题的一个简单方法是在程序中保留状态。每次绘制直线时,将其存储在点对的阵列列表中。当用户成功绘制一条直线时,将该直线的起点和终

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

我现在的节目就是这样,

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

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

我应该如何找到解决这个问题的方法


谢谢。

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


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

将行的起点和终点存储在一个对象中,该对象放在一个可扩展的集合中,例如
数组列表
。当需要绘制时,绘制列表中的所有线条

  • 按下鼠标,存储位置
  • 在鼠标向上移动时,使用上下点创建一个新的直线对象(定义您自己的类)
  • 卸下存储的鼠标(因为您不再需要它!)
  • 将新线对象添加到定义的线列表中
  • 当你画画时,一定要清除所有的东西,画出你储存的每一条线
  • (可选)如果您正在按下鼠标,还可以在当前存储的鼠标按下位置和当前鼠标位置之间绘制一条线
  • 建议两种方法。第一个按照此处的建议存储/重新绘制行。第二种方法是直接绘制到BuffereImage