【问题标题】:Java Simple Line Drawing ProgramJava简单画线程序
【发布时间】:2011-10-02 14:40:05
【问题描述】:

我想创建一个简单的 java 应用程序,只画线。

我的程序现在是这样的;

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

但是,因为每次我清屏,用户只能画一条线。 如果我不清理屏幕,用户拖动鼠标时会创建线条和曲线等。

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

谢谢。

【问题讨论】:

    标签: java drawing line


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
      1. 鼠标按下时,存储位置。
      2. 鼠标向上时,创建一个带有上下点的新线对象(定义您自己的类)。
      3. 向下移除存储的鼠标(因为您不再需要它了!)
      4. 将新的线对象添加到您定义的线列表中
      5. 绘画时,请务必清除所有内容并绘制您存储的每一行。
      6. (可选)如果您处于鼠标按下状态,还可以在当前存储的鼠标按下位置和当前鼠标位置之间画一条线。

      【讨论】:

        【解决方案3】:

        将线条的起点和终点存储在可扩展集合中的对象中,例如ArrayList。绘制时,将列表中的所有线条都绘制出来。

        【讨论】:

          【解决方案4】:

          Custom Painting Approaches 建议两种方法。第一个按照这里的建议存储/重绘线条。第二种方法是直接绘制到 BufferedImage。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-19
            • 1970-01-01
            • 1970-01-01
            • 2016-01-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多