Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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_Swing - Fatal编程技术网

Java 绘图/绘图不连续(涉及鼠标事件)

Java 绘图/绘图不连续(涉及鼠标事件),java,swing,Java,Swing,我在java类项目中遇到问题。第一步是画一个图案,所以我想,这并不难。事实并非如此,但有一件事确实困扰着我。首先,查看下面的屏幕截图: 我的问题是,这是在没有释放鼠标的情况下完成的,因此绘图应该是连续的。不是这个,而是有洞。我认为这与鼠标事件的传输方式有关,但我不知道如何调整这一点 绘图区域是JPanel。有一组点用于在鼠标事件上绘制容器。按“添加第一个点”,拖动其他点,清除绘图区域 希望我说得够具体。谢谢你的时间 编辑:忘记了代码 我猜您存储在mouseDrag处理中获得的鼠标点。鼠标拖动发

我在java类项目中遇到问题。第一步是画一个图案,所以我想,这并不难。事实并非如此,但有一件事确实困扰着我。首先,查看下面的屏幕截图:

我的问题是,这是在没有释放鼠标的情况下完成的,因此绘图应该是连续的。不是这个,而是有洞。我认为这与鼠标事件的传输方式有关,但我不知道如何调整这一点

绘图区域是JPanel。有一组点用于在鼠标事件上绘制容器。按“添加第一个点”,拖动其他点,清除绘图区域

希望我说得够具体。谢谢你的时间


编辑:忘记了代码

我猜您存储在mouseDrag处理中获得的鼠标点。鼠标拖动发生在一段时间间隔之后,所以如果你相对快速地移动鼠标,你只会得到点数。要绘制它,可以使用drawLine()传递点对。因此,您将有行。

我猜您存储在mouseDrag处理中获得的鼠标点。鼠标拖动发生在一段时间间隔之后,所以如果你相对快速地移动鼠标,你只会得到点数。要绘制它,可以使用drawLine()传递点对。因此,您将有行。

StanislavL说得对,移动鼠标光标时,不会为每个像素生成mouseMove/mouseDrag事件。你为什么不想用台词呢?如果问题是结果是丑陋的和锯齿形的,你可以考虑使用三次样条代替。GeneralPath.curveTo提供了一种简单的方法。如果获得正确的控制点是一件痛苦的事情,那么也可以使用GeneralPath.quadTo;这是一个二次近似值,看起来不太好,但是你可以很容易地从mouseDrags传入最后三个点。

StanislavL说得对,移动鼠标光标的每个像素都不会生成mouseMove/mouseDrag事件。你为什么不想用台词呢?如果问题是结果是丑陋的和锯齿形的,你可以考虑使用三次样条代替。GeneralPath.curveTo提供了一种简单的方法。如果获得正确的控制点是一件痛苦的事情,那么也可以使用GeneralPath.quadTo;这是一个二次近似值,看起来不太好,但您可以轻松地从mouseDrags传递最后三个点。

无需发布示例代码,您就无法指望任何帮助。我的错误。帖子被编辑了。“忘记了代码。”也忘记了问题。如果不发布示例代码,你就不能指望得到任何帮助。我的错误。这篇帖子被编辑了。“忘了密码。”也忘了问题。