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

时间:2011-04-06 09:50:34

标签: java swing

我遇到了java类项目的问题。第一步是画一个图案,所以我想,这可不难。它不是,但有一件事真的困扰我。首先,请查看以下屏幕截图:

Screenshot

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

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

希望我足够具体。谢谢你的时间!

修改:忘记代码。 http://pastebin.com/RyXiGsvm

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我猜你存储了在mouseDrag处理中获得的鼠标点。鼠标拖动发生在一段时间间隔后,所以如果你移动鼠标相对较快,你只需要得分。为了解决这个问题,你可以使用drawLine()传递成对点。所以你会有线。

相关问题